Plugin that changes text in the content for the value provided

The whole plugin that saves some text to the database and replace provided values in the content

<?php

/*
  Plugin Name: Change content
  Description: Plugin that changes provided words for something different
  Version 1.0
  Author: Matineo
  Author URI: https://www.pikademia.pl/how-to-add-custom-add_action-hook-to-the-custom-admin-settings-page/
*/

if( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly

add_action('admin_menu', 'ourMenu');
add_filter('the_content', 'filterLogic');

function filterLogic($content) {
    $badWords = explode(',', get_option('myPluginDBopt'));
    $badWordsTrimmed = array_map('trim', $badWords);
    return str_ireplace($badWordsTrimmed, esc_html(get_option('myPluginDBoptReplace', '****')), $content);
  }


  function ourMenu() {
    $mainPageHook = add_menu_page(
      'Change text plugin', 
      'Change text', 
      'manage_options', 
      'myPluginSlug', 
      'myPluginCallBackFunc', 
      'dashicons-format-quote', 
      100);
    add_action("load-{$mainPageHook}", 'myPluginAssets');
  }

  function myPluginAssets() {
    wp_enqueue_style('myPluginCss', plugin_dir_url(__FILE__) . 'mypluginstyle.css');
  }

  function handleForm() {
    if (wp_verify_nonce($_POST['ourNonce'], 'saveMyText') AND current_user_can('manage_options')) {
      update_option('myPluginDBopt', sanitize_text_field($_POST['myplugin1'])); 
      update_option('myPluginDBoptReplace', sanitize_text_field($_POST['replaceText']));?>
      <div class="updated">
        <p>Your filtered words were saved.</p>
      </div>
    <?php } else { ?>
      <div class="error">
        <p>Sorry, you do not have permission to perform that action.</p>
      </div>
    <?php } 
  }

  function myPluginCallBackFunc() { ?>
    <div class="wrap">
        <div class="mainDiv">
            <h1>Change text plugin</h1>
            <?php if ($_POST['justsubmitted'] == "true") {handleForm();} ?>
            <form method="POST">
            <input type="hidden" name="justsubmitted" value="true">
            <?php wp_nonce_field('saveMyText', 'ourNonce') ?>
                <label for="myplugin1"><p>Enter words, separated by coma</p></label>
                <div class="textArea">
                    <textarea name="myplugin1" id="myplugin1" placeholder="word1,word2,word3,word4,..."><?php echo esc_textarea(get_option('myPluginDBopt')) ?></textarea>
                </div>
                <p>Change for this value</p>
                <input type="text" name="replaceText">
                <input type="submit" name="submit" id="submit" class="button button-primary" value="Save Changes">
            </form>
        </div>
    </div>
  <?php }
Scroll to Top