Advertisement
Guest User

Untitled

a guest
Jun 30th, 2016
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.50 KB | None | 0 0
  1. /*Creates a PMPro email shortcode for the sponsored members message to use for greater control over location of message.
  2. Use !!sponsored_message!! in email checkout body to display.
  3. Removes the automatic insertion of message at the top of the email.
  4. */
  5.  
  6. function my_sponsored_email_shortcode($pmpro_email)
  7. {
  8. global $wpdb, $pmprosm_sponsored_account_levels;
  9.  
  10. $user_id = $wpdb->get_var("SELECT ID FROM $wpdb->users WHERE user_email = '" . $pmpro_email->data['user_email'] . "' LIMIT 1");
  11. $level_id = $pmpro_email->data['membership_id'];
  12. $code_id = pmprosm_getCodeByUserID($user_id);
  13.  
  14. if(!empty($user_id) && !empty($code_id) && pmprosm_isMainLevel($level_id))
  15. {
  16. $code = $wpdb->get_row("SELECT * FROM $wpdb->pmpro_discount_codes WHERE id = '" . esc_sql($code_id) . "' LIMIT 1");
  17. $pmprosm_values = pmprosm_getValuesByMainLevel($level_id);
  18.  
  19. if(!is_array($pmprosm_values['sponsored_level_id']))
  20. $sponsored_level_ids = array($pmprosm_values['sponsored_level_id']);
  21. else
  22. $sponsored_level_ids = $pmprosm_values['sponsored_level_id'];
  23.  
  24. //no sponsored levels to use codes for
  25. if(empty($sponsored_level_ids) || empty($sponsored_level_ids[0]))
  26. return;
  27.  
  28. //no uses for this code
  29. if(empty($code->uses))
  30. return;
  31.  
  32. $code_urls = array();
  33. $pmpro_levels = pmpro_getAllLevels(true, true);
  34. foreach($sponsored_level_ids as $sponsored_level_id)
  35. {
  36. $level_name = $pmpro_levels[$sponsored_level_id]->name;
  37. $code_urls[] = array("name"=>$level_name, "url"=>pmpro_url("checkout", "?level=" . $sponsored_level_id . "&discount_code=" . $code->code));
  38. }
  39. //build message
  40. $message = "<p>" . sprintf(__("Give this code to your sponsored members to use at checkout: %s", "pmpro_sponsored_members"), $code->code) . "<br />";
  41.  
  42. if(count($code_urls) > 1)
  43. $message .= __("Or provide one of these direct links to register:", "pmpro_sponsored_members") . "</p>";
  44. else
  45. $message .= __("Or provide this direct link to register:", "pmpro_sponsored_members") . "</p>";
  46.  
  47. $message .= "<ul>";
  48. foreach($code_urls as $code_url) {
  49. $message .= "<li>" . $code_url['name'] . ": <strong>" . $code_url['url'] . "</strong></li>";
  50. }
  51. $message .= "</ul>";
  52.  
  53. return $message;
  54. }
  55.  
  56. else
  57. return "";
  58. }
  59.  
  60. function my_pmpro_email_data($data, $email)
  61. {
  62. $data['sponsored_message'] = my_sponsored_email_shortcode($email);
  63.  
  64. return $data;
  65. }
  66. add_filter("pmpro_email_data", "my_pmpro_email_data", 10, 2);
  67.  
  68. function my_init()
  69. {
  70. remove_filter("pmpro_email_body", "pmprosm_pmpro_email_body", 10, 2);
  71. }
  72.  
  73. add_action('init', 'my_init');
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement