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 = MainWP_Helper::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 = MainWP_Helper::clean($protocol . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']); } else { $request = 'undefined'; } // query string if (isset($_SERVER['QUERY_STRING'])) { $string = MainWP_Helper::clean($_SERVER['QUERY_STRING']); } else { $string = 'undefined'; } // IP address if (isset($_SERVER['REMOTE_ADDR'])) { $address = MainWP_Helper::clean($_SERVER['REMOTE_ADDR']); } else { $address = 'undefined'; } // user agent if (isset($_SERVER['HTTP_USER_AGENT'])) { $agent = MainWP_Helper::clean($_SERVER['HTTP_USER_AGENT']); } else { $agent = 'undefined'; } // identity if (isset($_SERVER['REMOTE_IDENT'])) { $remote = MainWP_Helper::clean($_SERVER['REMOTE_IDENT']); } else { $remote = 'undefined'; } // log time $time = MainWP_Helper::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, MainWP_Helper::formatEmail($email, $mail), array('From: "' . $from_email . '" <' . $from_email . '>', 'content-type: text/html')); }