TransWikia.com

Comment IP Plugin - Fixing onfocus='this.select()'

WordPress Development Asked on December 24, 2021

I’m the process of getting an old plugin to work and what I need help with, if possible, is to review the "error" I’m getting.

No matter from who the comment is made, all I get is this: onfocus='this.select()'

I’m not good enough to fix this and so, if anyone can help I appreciate it.

This is the full code:

defined('ABSPATH') or exit;
add_action( 'load-edit-comments.php', array ( 'Track_Comment_IP_Column', 'init' ));
class Track_Comment_Column{
protected $col = '';
protected $filters = array ();
protected $header = '';
protected $orderby = '';
public static function init(){
new self;
}
public function __construct(){
foreach ( $this->filters as $filter => $function ){
add_filter( $filter, array ( $this, $function ), 10, 99 );
}}
public function set_column_header_name( $headers ){
return array_merge( $headers, array ( $this->col => $this->header ) );
}
public function set_sort_parameter( $cols ){
return array_merge( $cols, array ( $this->col => $this->orderby ) );
}
public function show_cell( $column_name, $id ){
$this->col == $column_name and $this->print_cell_markup( $id );
}
protected function print_cell_markup( $id ){
print 'Extend me in a separate class!';
}}
class Track_Comment_IP_Column extends Track_Comment_Column{
protected $col = 'ip';
protected $filters = array(
'manage_edit-comments_columns' => 'set_column_header_name',
'manage_edit-comments_sortable_columns' => 'set_sort_parameter',
'manage_comments_custom_column' => 'show_cell',
'query' => 'fix_ip_order'
);
protected $header  = 'IP Address';
protected $orderby = 'comment_author_IP';
public static function init(){
new self;
}
public function fix_ip_order( $q ){
return str_replace( $this->orderby, "INET_ATON($this->orderby)", $q );
}
protected function print_cell_markup( $id ){
$ip = get_comment_author_IP( $id );
$out = "<input size=15 value=$ip onfocus='this.select()'>
<br><a href='https://whatismyipaddress.com/ip/$ip' target='_blank'>Look up IP</a>";
print $out;
}}

One Answer

You haven't put quotes around the HTML attributes on this line:

$out = "<input size=15 value=$ip onfocus='this.select()'>

It needs to be:

$out = "<input size='15' value='$ip' onfocus='this.select()'>

Answered by Jacob Peattie on December 24, 2021

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP