Guest User

Untitled

a guest
May 23rd, 2018
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.86 KB | None | 0 0
  1. <?php
  2. /**
  3. * Sort meta-field company for PMPro member directory
  4. *
  5. * @param [type] $sqlQuery [description]
  6. * @param [type] $levels [description]
  7. * @param [type] $s [description]
  8. * @param [type] $pn [description]
  9. * @param [type] $limit [description]
  10. * @param [type] $start [description]
  11. * @param [type] $end [description]
  12. * @param [type] $order_by [description]
  13. * @param [type] $order [description]
  14. *
  15. * @return [type] [description]
  16. */
  17. function my_pmpro_member_directory_sql( $sqlQuery, $levels, $s, $pn, $limit, $start, $end, $order_by, $order ) {
  18. global $wpdb;
  19.  
  20. if ( $s ) {
  21. $sqlQuery =
  22.  
  23. "SELECT SQL_CALC_FOUND_ROWS
  24. u.ID,
  25. u.user_login,
  26. u.user_email,
  27. u.user_nicename,
  28. u.display_name,
  29. UNIX_TIMESTAMP(u.user_registered) as joindate,
  30. mu.membership_id,
  31. mu.initial_payment,
  32. mu.billing_amount,
  33. mu.cycle_period,
  34. mu.cycle_number,
  35. mu.billing_limit,
  36. mu.trial_amount,
  37. mu.trial_limit,
  38. UNIX_TIMESTAMP(mu.startdate) as startdate,
  39. UNIX_TIMESTAMP(mu.enddate) as enddate,
  40. m.name as membership,
  41. umf.meta_value as first_name,
  42. uml.meta_value as last_name,
  43. umz.meta_value as company
  44.  
  45. FROM $wpdb->users u
  46.  
  47. LEFT JOIN $wpdb->usermeta umh ON umh.meta_key = 'pmpromd_hide_directory' AND u.ID = umh.user_id
  48. LEFT JOIN $wpdb->usermeta umf ON umf.meta_key = 'first_name' AND u.ID = umf.user_id
  49. LEFT JOIN $wpdb->usermeta uml ON uml.meta_key = 'last_name' AND u.ID = uml.user_id
  50. LEFT JOIN $wpdb->usermeta umz ON umz.meta_key = 'company' AND u.ID = umz.user_id
  51. LEFT JOIN $wpdb->usermeta um ON u.ID = um.user_id
  52. LEFT JOIN $wpdb->pmpro_memberships_users mu ON u.ID = mu.user_id
  53. LEFT JOIN $wpdb->pmpro_membership_levels m ON mu.membership_id = m.id
  54.  
  55. WHERE mu.status = 'active'
  56. AND (umh.meta_value IS NULL OR umh.meta_value <> '1')
  57. AND mu.membership_id > 0 AND ";
  58.  
  59. $sqlQuery .= "(u.user_login LIKE '%" . esc_sql( $s ) . "%' OR u.user_email LIKE '%" . esc_sql( $s ) . "%' OR u.display_name LIKE '%" . esc_sql( $s ) . "%' OR um.meta_value LIKE '%" . esc_sql( $s ) . "%') ";
  60. if ( $levels ) {
  61. $sqlQuery .= ' AND mu.membership_id IN(' . esc_sql( $levels ) . ') ';
  62. }
  63. $sqlQuery .= 'GROUP BY u.ID ORDER BY ' . esc_sql( $order_by ) . ' ' . $order;
  64. } else {
  65. $sqlQuery =
  66.  
  67. "SELECT SQL_CALC_FOUND_ROWS u.ID,
  68. u.user_login,
  69. u.user_email,
  70. u.user_nicename,
  71. u.display_name,
  72. UNIX_TIMESTAMP(u.user_registered) as joindate,
  73. mu.membership_id,
  74. mu.initial_payment,
  75. mu.billing_amount,
  76. mu.cycle_period,
  77. mu.cycle_number,
  78. mu.billing_limit,
  79. mu.trial_amount,
  80. mu.trial_limit,
  81. UNIX_TIMESTAMP(mu.startdate) as startdate,
  82. UNIX_TIMESTAMP(mu.enddate) as enddate,
  83. m.name as membership,
  84. umf.meta_value as first_name,
  85. uml.meta_value as last_name,
  86. umz.meta_value as company
  87.  
  88.  
  89. FROM $wpdb->users u
  90.  
  91. LEFT JOIN $wpdb->usermeta umh ON umh.meta_key = 'pmpromd_hide_directory' AND u.ID = umh.user_id
  92. LEFT JOIN $wpdb->usermeta umf ON umf.meta_key = 'first_name' AND u.ID = umf.user_id
  93. LEFT JOIN $wpdb->usermeta uml ON uml.meta_key = 'last_name' AND u.ID = uml.user_id
  94. LEFT JOIN $wpdb->usermeta umz ON umz.meta_key = 'company' AND u.ID = umz.user_id
  95. LEFT JOIN $wpdb->pmpro_memberships_users mu ON u.ID = mu.user_id
  96. LEFT JOIN $wpdb->pmpro_membership_levels m ON mu.membership_id = m.id";
  97.  
  98. $sqlQuery .= "
  99. WHERE mu.status = 'active'
  100. AND (umh.meta_value IS NULL OR umh.meta_value <> '1')
  101. AND mu.membership_id > 0 ";
  102. if ( $levels ) {
  103. $sqlQuery .= ' AND mu.membership_id IN(' . esc_sql( $levels ) . ') ';
  104. }
  105. $sqlQuery .= 'ORDER BY ' . esc_sql( $order_by ) . ' ' . esc_sql( $order );
  106. }
  107. $sqlQuery .= " LIMIT $start, $limit";
  108.  
  109. return $sqlQuery;
  110. }
  111.  
  112. add_filter( 'pmpro_member_directory_sql', 'my_pmpro_member_directory_sql', 10, 9 );
Add Comment
Please, Sign In to add comment