Comment IP Plugin – Fixing onfocus=’this.select()’

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;
}}

Answers:

Thank you for visiting the Q&A section on Magenaut. Please note that all the answers may not help you solve the issue immediately. So please treat them as advisements. If you found the post helpful (or not), leave a comment & I’ll get back to you as soon as possible.

Method 1

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()'>


All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0

0 0 votes
Article Rating
Subscribe
Notify of
guest

0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x