function maintenance_alert_404() { if (!is_404()) { return; } $email = get_option('mainwp_maintenance_opt_alert_404_email'); if (empty($email) || !preg_match("/^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\\.[a-zA-Z0-9-.]+\$/is", $email)) { return; } // set status header("HTTP/1.1 404 Not Found"); header("Status: 404 Not Found"); // site info $blog = get_bloginfo('name'); $site = get_bloginfo('url') . '/'; $from_email = get_bloginfo('admin_email'); // referrer if (isset($_SERVER['HTTP_REFERER'])) { $referer = MainWPHelper::clean($_SERVER['HTTP_REFERER']); } else { $referer = "undefined"; } $protocol = isset($_SERVER['HTTPS']) && strcasecmp($_SERVER['HTTPS'], 'off') ? 'https://' : 'http://'; // request URI if (isset($_SERVER['REQUEST_URI']) && isset($_SERVER["HTTP_HOST"])) { $request = MainWPHelper::clean($protocol . $_SERVER["HTTP_HOST"] . $_SERVER["REQUEST_URI"]); } else { $request = "undefined"; } // query string if (isset($_SERVER['QUERY_STRING'])) { $string = MainWPHelper::clean($_SERVER['QUERY_STRING']); } else { $string = "undefined"; } // IP address if (isset($_SERVER['REMOTE_ADDR'])) { $address = MainWPHelper::clean($_SERVER['REMOTE_ADDR']); } else { $address = "undefined"; } // user agent if (isset($_SERVER['HTTP_USER_AGENT'])) { $agent = MainWPHelper::clean($_SERVER['HTTP_USER_AGENT']); } else { $agent = "undefined"; } // identity if (isset($_SERVER['REMOTE_IDENT'])) { $remote = MainWPHelper::clean($_SERVER['REMOTE_IDENT']); } else { $remote = "undefined"; } // log time $time = MainWPHelper::clean(date("F jS Y, h:ia", time())); $mail = "<div>" . "TIME: " . $time . "</div>" . "<div>" . "*404: " . $request . "</div>" . "<div>" . "SITE: " . $site . "</div>" . "<div>" . "REFERRER: " . $referer . "</div>" . "<div>" . "QUERY STRING: " . $string . "</div>" . "<div>" . "REMOTE ADDRESS: " . $address . "</div>" . "<div>" . "REMOTE IDENTITY: " . $remote . "</div>" . "<div>" . "USER AGENT: " . $agent . "</div>"; $mail = '<div>404 alert</div> <div></div>' . $mail; wp_mail($email, 'MainWP - 404 Alert: ' . $blog, MainWPHelper::formatEmail($email, $mail), array('From: "' . $from_email . '" <' . $from_email . '>', 'content-type: text/html')); }