Guest User

Untitled

a guest
Jan 16th, 2019
145
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.63 KB | None | 0 0
  1. /**
  2. * Update member and order searches to also search by discount code.
  3. *
  4. * I'm not recommending anyone actually use this, but sharing as an example.
  5. *
  6. * This is a little hacky how the members list SQL is edited.
  7. * You get odd results if you change the level or other parameters
  8. * on the members list table and also search for an order.
  9. * Can also act wonky if you have overlaps between your discount code names
  10. * and cities, user names, names, or anything else that would normally
  11. * score a hit for a search.
  12. */
  13. function discount_code_search_for_pmpro_members_list( $sqlQuery ) {
  14. global $wpdb;
  15.  
  16. if(isset($_REQUEST['s']))
  17. $s = sanitize_text_field(trim($_REQUEST['s']));
  18. else
  19. $s = "";
  20.  
  21. // is this a discount code?
  22. $code = $wpdb->get_row( "SELECT * FROM $wpdb->pmpro_discount_codes WHERE code = '" . esc_sql( $s ) . "' LIMIT 1" );
  23.  
  24. if ( ! empty( $code ) ) {
  25. // Get user's using this code
  26. $user_ids_uses = $wpdb->get_col( "SELECT DISTINCT(user_id) FROM $wpdb->pmpro_discount_codes_uses WHERE code_id = '" . esc_sql( $code->id ) . "'");
  27.  
  28. $user_ids_users = $wpdb->get_col( "SELECT DISTINCT(user_id) FROM $wpdb->pmpro_memberships_users WHERE code_id = '" . esc_sql( $code->id ) . "'");
  29.  
  30. $user_ids = array_unique( array_merge( $user_ids_uses, $user_ids_users ) );
  31.  
  32. if ( ! empty( $user_ids ) ) {
  33. $sql_to_match = "WHERE mu.membership_id > 0 AND ";
  34. $sql_to_swap = "WHERE mu.membership_id > 0 AND mu.user_id IN(" . implode( ',', $user_ids ) . ") OR ";
  35. $sqlQuery = str_replace( $sql_to_match, $sql_to_swap, $sqlQuery );
  36. }
  37. }
  38.  
  39. return $sqlQuery;
  40. }
  41. add_filter( 'pmpro_members_list_sql', 'discount_code_search_for_pmpro_members_list' );
Add Comment
Please, Sign In to add comment