• Resolved Fee

    (@wdfee)


    Hey there, in our setup the history table in
    …/wp-admin/users.php?page=mycred_default-history
    is empty (“No log entries found”).
    With debug on it shows the following php warning and notices:

    Warning: array_key_exists() expects parameter 2 to be array, null given in /[…]/plugins/mycred/includes/classes/class.query-log.php on line 72

    Notice: Undefined index: paged in /[…]/plugins/mycred/includes/classes/class.query-log.php on line 74
    Notice: Undefined index: ctype in /[…]/plugins/mycred/includes/classes/class.query-log.php on line 91
    Notice: Undefined index: entry_id in /[…]/plugins/mycred/includes/classes/class.query-log.php on line 173
    Notice: Undefined index: ctype in /[…]/plugins/mycred/includes/classes/class.query-log.php on line 232
    Notice: Undefined index: user_id in /[…]/plugins/mycred/includes/classes/class.query-log.php on line 276
    Notice: Undefined index: ref in /[…]/plugins/mycred/includes/classes/class.query-log.php on line 335
    Notice: Undefined index: ref_id in /[…]/plugins/mycred/includes/classes/class.query-log.php on line 394
    Notice: Undefined index: amount in /[…]/plugins/mycred/includes/classes/class.query-log.php on line 461
    Notice: Undefined index: time in /[…]/plugins/mycred/includes/classes/class.query-log.php on line 562
    Notice: Undefined index: s in /[…]/plugins/mycred/includes/classes/class.query-log.php on line 634
    Notice: Undefined index: data in /[…]/plugins/mycred/includes/classes/class.query-log.php on line 655
    Notice: Undefined index: ids in /[…]/plugins/mycred/includes/classes/class.query-log.php on line 743
    Notice: Undefined index: fields in /[…]/plugins/mycred/includes/classes/class.query-log.php on line 746
    Notice: Undefined index: number in /[…]/plugins/mycred/includes/classes/class.query-log.php on line 808
    Notice: Undefined index: offset in /[…]/plugins/mycred/includes/classes/class.query-log.php on line 824
    Warning: Division by zero in /[…]/plugins/mycred/includes/classes/class.query-log.php on line 873
    Notice: Undefined index: user_id in /[…]/plugins/mycred/includes/classes/class.query-log.php on line 904

    So, here is our patch to avoid this:
    1. Skip filtering, because it results in an empty array in
    /mycred/includes/classes/class.query-log.php line 69:
    change this line:
    $this->args = apply_filters( 'mycred_query_log_args', wp_parse_args( $args, $defaults ), $defaults );
    to:
    $this->args = wp_parse_args( $args, $defaults );

    @plugin-devs: If you can figure out why the filtered array is empty, maybe you can implement a better solution.

    One more step is needed on line 815 – change this:
    if ( $number !== NULL ) {
    to:
    if ( $number !== NULL && $number != 0 ) {
    to avoid division by zero.

    WP 4.9.6, myCRED 1.7.6.9, PHP 7.1

    • This topic was modified 6 years, 8 months ago by Fee.
  • The topic ‘empty history table in admin #has-patch’ is closed to new replies.