: str_replace(): Passing null to parameter #2 ($replace) of type array|string is deprecated in
<?php if (!defined('WORDFENCE_VERSION')) { exit; } ?>
<div class="wf-col-xs-12">
<div class="wf-dashboard-item active">
<div class="wf-dashboard-item-inner">
<div class="wf-dashboard-item-content">
<div class="wf-dashboard-item-title">
<strong><?php esc_html_e('Total Attacks Blocked:', 'wordfence'); ?> </strong><?php esc_html_e('Wordfence Network', 'wordfence'); ?>
<div class="wf-dashboard-item-action"><div class="wf-dashboard-item-action-disclosure"></div></div>
<div class="wf-dashboard-item-extra">
<ul class="wf-dashboard-item-list">
<?php if ($d->networkBlock24h === null): ?>
<div class="wf-dashboard-item-list-text"><p><em><?php esc_html_e('Blocked attack counts not available yet.', 'wordfence'); ?></em></p></div>
<div class="wf-dashboard-graph-wrapper">
<div class="wf-dashboard-toggle-btns">
<ul class="wf-pagination wf-pagination-sm">
<li class="wf-active"><a href="#" class="wf-dashboard-graph-attacks" data-grouping="24h" role="button"><?php esc_html_e('24 Hours', 'wordfence'); ?></a></li>
<li><a href="#" class="wf-dashboard-graph-attacks" data-grouping="30d" role="button"><?php esc_html_e('30 Days', 'wordfence'); ?></a></li>
<div class="wf-dashboard-network-blocks"><canvas id="wf-dashboard-network-blocks-24h"></canvas></div>
<div class="wf-dashboard-network-blocks wf-hidden"><canvas id="wf-dashboard-network-blocks-7d"></canvas></div>
<div class="wf-dashboard-network-blocks wf-hidden"><canvas id="wf-dashboard-network-blocks-30d"></canvas></div>
<script type="application/javascript">
$totalAttacksString = json_encode(__("Total Attacks", 'wordfence'));
label: $totalAttacksString,
backgroundColor: "rgba(75,192,192,0.4)",
borderJoinStyle: 'miter',
pointBorderColor: "rgba(75,192,192,1)",
pointBackgroundColor: "#fff",
pointHoverBackgroundColor: "rgba(75,192,192,1)",
pointHoverBorderColor: "rgba(220,220,220,1)",
pointHoverBorderWidth: 2,
$(document).ready(function() {
new Chart($('#wf-dashboard-network-blocks-24h'), {
$blocks = $d->networkBlock24h;
foreach ($blocks as $b) {
$labels[] = "'" . wfUtils::formatLocalTime('g a', $b['t']) . "'";
labels: [<?php echo implode(',', $labels); ?>],
data: [<?php echo implode(',', $values) ?>]
callback: function(value, index, values) {
return value.toLocaleString();
label: function(tooltipItem, data) {
var datasetLabel = data.datasets[tooltipItem.datasetIndex].label || 'Other';
var label = parseInt(tooltipItem.yLabel).toLocaleString();
return datasetLabel + ': ' + label;
new Chart($('#wf-dashboard-network-blocks-7d'), {
$blocks = $d->networkBlock7d;
foreach ($blocks as $b) {
$labels[] = "'" . wfUtils::formatLocalTime('M j', $b['t']) . "'";
labels: [<?php echo implode(',', $labels); ?>],
data: [<?php echo implode(',', $values) ?>]
callback: function(value, index, values) {
return value.toLocaleString();
label: function(tooltipItem, data) {
var datasetLabel = data.datasets[tooltipItem.datasetIndex].label || 'Other';
var label = parseInt(tooltipItem.yLabel).toLocaleString();
return datasetLabel + ': ' + label;
new Chart($('#wf-dashboard-network-blocks-30d'), {
$blocks = $d->networkBlock30d;
foreach ($blocks as $b) {
$labels[] = "'" . wfUtils::formatLocalTime('M j', $b['t']) . "'";
labels: [<?php echo implode(',', $labels); ?>],
data: [<?php echo implode(',', $values) ?>]
callback: function(value, index, values) {
return value.toLocaleString();
label: function(tooltipItem, data) {
var datasetLabel = data.datasets[tooltipItem.datasetIndex].label || 'Other';
var label = parseInt(tooltipItem.yLabel).toLocaleString();
return datasetLabel + ': ' + label;
$('.wf-dashboard-graph-attacks').on('click', function(e) {
$(this).closest('ul').find('li').removeClass('wf-active');
$(this).closest('li').addClass('wf-active');
$('.wf-dashboard-network-blocks').addClass('wf-hidden');
$('#wf-dashboard-network-blocks-' + $(this).data('grouping')).closest('.wf-dashboard-network-blocks').removeClass('wf-hidden');
<p class="wf-dashboard-last-updated"><?php echo esc_html(sprintf(
/* translators: Time since. Example: 1 minute, 2 seconds */
__('Last Updated: %s ago', 'wordfence'), wfUtils::makeTimeAgo(time() - $d->lastGenerated))); ?></p>