insert( $wpdb->prefix . 'mnbt_api_log', array( 'provider_id' => (int) $provider_id, 'action' => sanitize_key( (string) $action ), 'params_json' => wp_json_encode( self::mask( $params ) ), 'code' => (int) $code, 'msg' => mb_substr( (string) $msg, 0, 500 ), 'duration' => round( (float) $duration, 3 ), 'created_at' => current_time( 'mysql' ), ), array( '%d', '%s', '%s', '%d', '%s', '%f', '%s' ) ); } /** * 对敏感参数脱敏。 * * @param array $params 原始参数。 * @return array */ private static function mask( array $params ) { $masked = $params; foreach ( array( 'mn_key', 'mn_keye', 'password' ) as $k ) { if ( array_key_exists( $k, $masked ) && '' !== $masked[ $k ] ) { $masked[ $k ] = '***'; } } return $masked; } }