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;
}}
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
Get help from others!
Recent Answers
Recent Questions
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP