177 lines
7.7 KiB
PHP
177 lines
7.7 KiB
PHP
<?php
|
|
defined('ABSPATH') or exit;
|
|
|
|
/** @var array $opts */
|
|
/** @var MC4WP_Debug_Log $log */
|
|
/** @var MC4WP_Debug_Log_Reader $log_reader */
|
|
|
|
?>
|
|
<div id="mc4wp-admin" class="wrap mc4wp-settings">
|
|
|
|
<p class="mc4wp-breadcrumbs">
|
|
<span class="prefix"><?php echo esc_html__('You are here: ', 'mailchimp-for-wp'); ?></span>
|
|
<a href="<?php echo admin_url('admin.php?page=mailchimp-for-wp'); ?>">Mailchimp for WordPress</a> ›
|
|
<span class="current-crumb"><strong><?php echo esc_html__('Other Settings', 'mailchimp-for-wp'); ?></strong></span>
|
|
</p>
|
|
|
|
|
|
<div class="mc4wp-row">
|
|
|
|
<!-- Main Content -->
|
|
<div class="main-content mc4wp-col">
|
|
|
|
<h1 class="mc4wp-page-title">
|
|
<?php echo esc_html__('Other Settings', 'mailchimp-for-wp'); ?>
|
|
</h1>
|
|
|
|
<h2 style="display: none;"></h2>
|
|
<?php settings_errors(); ?>
|
|
|
|
<?php
|
|
|
|
/**
|
|
* @ignore
|
|
*/
|
|
|
|
do_action('mc4wp_admin_before_other_settings', $opts);
|
|
?>
|
|
|
|
<!-- Settings -->
|
|
<form action="<?php echo admin_url('options.php'); ?>" method="post">
|
|
<?php settings_fields('mc4wp_settings'); ?>
|
|
|
|
<div class="mc4wp-margin-m" >
|
|
<h3><?php echo esc_html__('Miscellaneous settings', 'mailchimp-for-wp'); ?></h3>
|
|
<table class="form-table">
|
|
<tr>
|
|
<th><label for="mc4wp-debug-log-level"><?php echo esc_html__('Logging', 'mailchimp-for-wp'); ?></label></th>
|
|
<td>
|
|
<select id="mc4wp-debug-log-level" name="mc4wp[debug_log_level]">
|
|
<option value="warning" <?php selected('warning', $opts['debug_log_level']); ?>><?php echo esc_html__('Errors & warnings only', 'mailchimp-for-wp'); ?></option>
|
|
<option value="debug" <?php selected('debug', $opts['debug_log_level']); ?>><?php echo esc_html__('Everything', 'mailchimp-for-wp'); ?></option>
|
|
</select>
|
|
<p class="description">
|
|
<?php echo sprintf(wp_kses(__('Determines what events should be written to <a href="%s">the debug log</a> (see below).', 'mailchimp-for-wp'), array( 'a' => array( 'href' => array() ) )), 'https://www.mc4wp.com/kb/how-to-enable-log-debugging/#utm_source=wp-plugin&utm_medium=mailchimp-for-wp&utm_campaign=settings-page'); ?>
|
|
</p>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
|
|
<?php
|
|
/**
|
|
* @ignore
|
|
*/
|
|
do_action('mc4wp_admin_other_settings', $opts);
|
|
?>
|
|
|
|
<div style="margin-top: -20px;"><?php submit_button(); ?></div>
|
|
</form>
|
|
|
|
<!-- Debug Log -->
|
|
<div class="mc4wp-margin-m">
|
|
<h3><?php echo esc_html__('Debug Log', 'mailchimp-for-wp'); ?> <input type="text" id="debug-log-filter" class="alignright regular-text" placeholder="<?php echo esc_attr__('Filter..', 'mailchimp-for-wp'); ?>" /></h3>
|
|
|
|
<?php
|
|
if (! $log->test()) {
|
|
echo '<p>';
|
|
echo esc_html__('Log file is not writable.', 'mailchimp-for-wp') . ' ';
|
|
echo sprintf(wp_kses(__('Please ensure %1$s has the proper <a href="%2$s">file permissions</a>.', 'mailchimp-for-wp'), array( 'a' => array( 'href' => array() ) )), '<code>' . $log->file . '</code>', 'https://codex.wordpress.org/Changing_File_Permissions');
|
|
echo '</p>';
|
|
|
|
// hack to hide filter input
|
|
echo '<style>#debug-log-filter { display: none; }</style>';
|
|
} else {
|
|
?>
|
|
<div id="debug-log" class="mc4wp-log widefat">
|
|
<?php
|
|
$line = $log_reader->read_as_html();
|
|
|
|
if (! empty($line)) {
|
|
while (is_string($line)) {
|
|
if (! empty($line)) {
|
|
echo '<div class="debug-log-line">' . $line . '</div>';
|
|
}
|
|
|
|
$line = $log_reader->read_as_html();
|
|
}
|
|
} else {
|
|
echo '<div class="debug-log-empty">';
|
|
echo '-- ', esc_html__('Nothing here. Which means there are no errors!', 'mailchimp-for-wp');
|
|
echo '</div>';
|
|
}
|
|
?>
|
|
</div>
|
|
|
|
<form method="post">
|
|
<input type="hidden" name="_mc4wp_action" value="empty_debug_log">
|
|
<?php wp_nonce_field('_mc4wp_action', '_wpnonce'); ?>
|
|
<p>
|
|
<input type="submit" class="button" value="<?php echo esc_attr__('Empty Log', 'mailchimp-for-wp'); ?>"/>
|
|
</p>
|
|
</form>
|
|
<?php
|
|
} // end if is writable
|
|
|
|
if ($log->level >= 300) {
|
|
echo '<p>';
|
|
echo esc_html__('Right now, the plugin is configured to only log errors and warnings.', 'mailchimp-for-wp');
|
|
echo '</p>';
|
|
}
|
|
?>
|
|
<script>
|
|
(function() {
|
|
// scroll to bottom of log
|
|
let log = document.getElementById("debug-log"),
|
|
logItems;
|
|
log.scrollTop = log.scrollHeight;
|
|
log.style.minHeight = '';
|
|
log.style.maxHeight = '';
|
|
log.style.height = log.clientHeight + "px";
|
|
|
|
// add filter
|
|
document.getElementById('debug-log-filter').addEventListener('keydown', function(evt) {
|
|
if(evt.keyCode === 13 ) {
|
|
searchLog(evt.target.value.trim());
|
|
}
|
|
});
|
|
|
|
// search log for query
|
|
function searchLog(query) {
|
|
if( ! logItems ) {
|
|
logItems = [].map.call(log.children, function(node) {
|
|
return node.cloneNode(true);
|
|
})
|
|
}
|
|
|
|
const ri = new RegExp(query.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, "\\$&"), 'i');
|
|
const newLog = log.cloneNode(false);
|
|
logItems.forEach(function(node) {
|
|
if( ! node.textContent ) { return ; }
|
|
if( ! query.length || ri.test(node.textContent) ) {
|
|
newLog.appendChild(node);
|
|
}
|
|
});
|
|
|
|
log.parentNode.replaceChild(newLog, log);
|
|
log = newLog;
|
|
log.scrollTop = log.scrollHeight;
|
|
}
|
|
})();
|
|
</script>
|
|
</div>
|
|
<!-- / Debug Log -->
|
|
<?php require __DIR__ . '/parts/admin-footer.php'; ?>
|
|
</div>
|
|
|
|
<!-- Sidebar -->
|
|
<div class="mc4wp-sidebar mc4wp-col">
|
|
<?php require __DIR__ . '/parts/admin-sidebar.php'; ?>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|