Advertisement
5ally

(WordPress) get_player_stats()

Oct 26th, 2018
289
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 1.46 KB | None | 0 0
  1. function get_player_stats( $player_id ) {
  2.     global $wpdb;
  3.  
  4.     $stats = [];
  5.  
  6.     $range = range( 1, 11 );
  7.     $stats['apps'] = (int) $wpdb->get_var( $wpdb->prepare( "
  8.         SELECT COUNT(pm.meta_id) FROM {$wpdb->postmeta} pm
  9.             INNER JOIN {$wpdb->posts} p ON p.ID = pm.post_id
  10.         WHERE pm.meta_key IN ('pl" . implode( "', 'pl", $range ) . "')
  11.             AND pm.meta_value = %d
  12.             AND p.post_type   = 'match'
  13.             AND p.post_status = 'publish'
  14.     ", $player_id ) );
  15.  
  16.     $range = range( 12, 18 );
  17.     $stats['subs'] = (int) $wpdb->get_var( $wpdb->prepare( "
  18.         SELECT COUNT(DISTINCT pm2.meta_key) FROM {$wpdb->postmeta} pm
  19.             INNER JOIN {$wpdb->postmeta} pm2 ON pm2.post_id = pm.post_id
  20.             INNER JOIN {$wpdb->posts} p ON p.ID = pm.post_id
  21.         WHERE 1
  22.             AND (
  23.                 pm.meta_key IN ('pl" . implode( "', 'pl", $range ) . "')
  24.                 AND pm.meta_value = %d
  25.             )
  26.             AND (
  27.                 pm2.meta_key IN ('si" . implode( "', 'si", $range ) . "')
  28.                 AND ( SUBSTR(pm2.meta_key, 3) = SUBSTR(pm.meta_key, 3) )
  29.                 AND pm2.meta_value+0 > 0
  30.             )
  31.             AND p.post_type   = 'match'
  32.             AND p.post_status = 'publish'
  33.     ", $player_id ) );
  34.  
  35.     $range = range( 1, 18 );
  36.     $stats['goals'] = (int) $wpdb->get_var( $wpdb->prepare( "
  37.         SELECT COUNT(pm.meta_id) FROM {$wpdb->postmeta} pm
  38.             INNER JOIN {$wpdb->posts} p ON p.ID = pm.post_id
  39.         WHERE pm.meta_key IN ('s" . implode( "', 's", $range ) . "')
  40.             AND pm.meta_value = %d
  41.             AND p.post_type   = 'match'
  42.             AND p.post_status = 'publish'
  43.     ", $player_id ) );
  44.  
  45.     return $stats;
  46. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement