Tag Archives: array

So.. I was using this nice plugin called wordpress-notification-bar to show a..yea, you guessed it.. a notification bar. My use was to show the bar to tell users that to download premium content, they need to login. Unfortunately, the plugin didnt offer such an option. So I decided to extend it.

First, I tapped into the Settings page and added an option to put a checkbox to allow users to choose whether they wanted such an option:

$seed_wnb->options[ ] = array(
    "type" => "checkbox",
    "id" => "disabledloggedin",
    "label" => __( "Disable for Logged in", 'wordpress-notification-bar' ),
    "desc" => __( "Check if you want to disable the notification bar if the user is logged in.", "wordpress-notification-bar" ),
    "option_values" => array(
        '1' => __( 'Yes', 'wordpress-notification-bar' )
    )
);

Next I needed to check whether the option was enabled, and the user was logged in, and disable the bar in such a case:

if ( isset($options['disabledloggedin']) && is_user_logged_in() ) {
  return false;
}

The final patch is this:

 #diff -rupN wordpress-notification-bar wordpress-notification-bar-patched
diff -rupN wordpress-notification-bar/inc/class-plugin.php wordpress-notification-bar-patched/inc/class-plugin.php
--- wordpress-notification-bar/inc/class-plugin.php     2013-05-29 17:56:26.000000000 +0530
+++ wordpress-notification-bar-patched/inc/class-plugin.php     2016-08-20 23:10:43.000000000 +0530
@@ -17,7 +17,10 @@ class SeedProd_WordPress_Notification_Ba
                $options = get_option('seed_wnb_settings_1');


+
        if(!empty($options)){
+
+

                if(isset($options['enabled'])){
                        add_action( 'wp_enqueue_scripts', array(&$this,'render_notification_bar') );
@@ -32,6 +35,13 @@ class SeedProd_WordPress_Notification_Ba
     function render_notification_bar($hook){
        global $seed_wnb;
         $options = $seed_wnb->get_options();
+       /* Code added by Joel G Mathew, to disable notification bar if user is logged in\
+       // Dont show bar if user is logged in
+       */
+               if ( isset($options['disabledloggedin']) && is_user_logged_in() ) {
+                       return false;
+               }
+       // End of Code to disable bar if logged in

         if($hook == 'settings_page_seed_wnb' || ! is_admin() && isset($options['enabled'])){
                $button_target = '_self';
@@ -51,7 +61,7 @@ class SeedProd_WordPress_Notification_Ba
         }
     }

-    function render_css(){
+    function render_css(){
        global $seed_wnb;
        $options = $seed_wnb->get_options();

diff -rupN wordpress-notification-bar/inc/config.php wordpress-notification-bar-patched/inc/config.php
--- wordpress-notification-bar/inc/config.php   2015-10-02 13:08:38.000000000 +0530
+++ wordpress-notification-bar-patched/inc/config.php   2016-08-20 22:56:35.000000000 +0530
@@ -70,7 +70,19 @@ $seed_wnb->options[ ] = array(
         '1' => __( 'Yes', 'wordpress-notification-bar' )
     )
 );
-
+/* Code added by Joel G Mathew, to disable notification bar if user is logged in\
+        // Dont show bar if user is logged in
+        */
+$seed_wnb->options[ ] = array(
+    "type" => "checkbox",
+    "id" => "disabledloggedin",
+    "label" => __( "Disable for Logged in", 'wordpress-notification-bar' ),
+    "desc" => __( "Check if you want to disable the notification bar if the user is logged in.", "wordpress-notification-bar" ),
+    "option_values" => array(
+        '1' => __( 'Yes', 'wordpress-notification-bar' )
+    )
+);
+// End of Code to disable bar if logged in

 $seed_wnb->options[ ] = array(
     "type" => "textbox",

Error message:

”┬áScan terminated with error: We received an error response when trying to contact the Wordfence scanning servers using PHP’s file_get_contents function. The error was: Array”

apt-get -y install php5-curl
service apache2 restart

You can test if curl has been enabled, by calling the phpinfo() function on any php page.

Once this is done, Wordfence works properly.

You dont need bloated plugins for implementing a comment system for WordPress.

I use the following simple prototype for a comment system on WordPress.

The first part is a form using tables and form fields to take care of the user input:

You can use the following form to contact the author:

Next is the php script which runs on the server and takes care of mailing the form data to a specified email address:

<?php
if(isset($_POST['email'])) {

    // EDIT THE 2 LINES BELOW AS REQUIRED
    $email_to = "[email protected]";
    $email_subject = "Someone has submitted feedback on your website";

    function died($error) {
        // your error code can go here
        echo "We are very sorry, but there were error(s) found with the form you submitted. ";
        echo "These errors appear below.<br /><br />";
        echo $error."<br /><br />";
        echo "Please go back and fix these errors.<br /><br />";
        die();
    }

    // validation expected data exists
    if(!isset($_POST['first_name']) ||
        !isset($_POST['last_name']) ||
        !isset($_POST['email']) ||
        !isset($_POST['telephone']) ||
        !isset($_POST['comments'])) {
        died('We are sorry, but there appears to be a problem with the form you submitted.');       
    }

    $first_name = $_POST['first_name']; // required
    $last_name = $_POST['last_name']; // required
    $email_from = $_POST['email']; // required
    $telephone = $_POST['telephone']; // not required
    $comments = $_POST['comments']; // required

    $error_message = "";
    $email_exp = '/^[A-Za-z0-9._%-][email protected][A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/';
  if(!preg_match($email_exp,$email_from)) {
    $error_message .= 'The Email Address you entered does not appear to be valid.<br />';
  }
    $string_exp = "/^[A-Za-z .'-]+$/";
  if(!preg_match($string_exp,$first_name)) {
    $error_message .= 'The First Name you entered does not appear to be valid.<br />';
  }
  if(!preg_match($string_exp,$last_name)) {
    $error_message .= 'The Last Name you entered does not appear to be valid.<br />';
  }
  if(strlen($comments) < 2) {
    $error_message .= 'The Comments you entered do not appear to be valid.<br />';
  }
  if(strlen($error_message) > 0) {
    died($error_message);
  }
    $email_message = "Form details below.\n\n";

    function clean_string($string) {
      $bad = array("content-type","bcc:","to:","cc:","href");
      return str_replace($bad,"",$string);
    }

    $email_message .= "First Name: ".clean_string($first_name)."\n";
    $email_message .= "Last Name: ".clean_string($last_name)."\n";
    $email_message .= "Email: ".clean_string($email_from)."\n";
    $email_message .= "Telephone: ".clean_string($telephone)."\n";
    $email_message .= "Comments: ".clean_string($comments)."\n";

// create email headers

$headers = 'From: '.'[email protected]'."\r\n".
'Reply-To: '.$email_from."\r\n" .
'X-Mailer: PHP/' . phpversion();
@mail($email_to, $email_subject, $email_message, $headers);  
?>

<!-- include your own success html here -->

Thank you for contacting us. We will be in touch with you very soon.

<?php

}

?>

Note that it includes certain checks to see if mandatory fields have been filled in.