function send_message($user_id, $sub_id = false, $level_id = false) { global $wp_better_emails; $member = Membership_Plugin::factory()->get_member($user_id); if (!filter_var($member->user_email, FILTER_VALIDATE_EMAIL)) { return; } $this->comm = $this->get_communication(); $commdata = apply_filters('membership_comm_constants_list', $this->commconstants); foreach (array_keys($commdata) as $key) { switch ($key) { case '%blogname%': $commdata[$key] = get_option('blogname'); break; case '%blogurl%': $commdata[$key] = get_option('home'); break; case '%username%': $commdata[$key] = $member->user_login; break; case '%usernicename%': $commdata[$key] = $member->user_nicename; break; case '%userdisplayname%': $commdata[$key] = $member->display_name; break; case '%userfirstname%': $commdata[$key] = $member->user_firstname; break; case '%userlastname%': $commdata[$key] = $member->user_lastname; break; case '%networkname%': $commdata[$key] = get_site_option('site_name'); break; case '%networkurl%': $commdata[$key] = get_site_option('siteurl'); break; case '%subscriptionname%': if (!$sub_id) { $ids = $member->get_subscription_ids(); if (!empty($ids)) { $sub_id = $ids[0]; } } if (!empty($sub_id)) { $sub = Membership_Plugin::factory()->get_subscription($sub_id); $commdata[$key] = $sub->sub_name(); } else { $commdata[$key] = ''; } break; case '%levelname%': if (!$level_id) { $ids = $member->get_level_ids(); if (!empty($ids)) { $level_id = $ids[0]->level_id; } } if (!empty($level_id)) { $level = Membership_Plugin::factory()->get_level($level_id); $commdata[$key] = $level->level_title(); } else { $commdata[$key] = ''; } break; case '%accounturl%': $commdata[$key] = M_get_account_permalink(); break; default: $commdata[$key] = apply_filters('membership_commfield_' . $key, '', $user_id); break; } } // Globally replace the values in the ping and then make it into an array to send $original_commmessage = str_replace(array_keys($commdata), array_values($commdata), stripslashes($this->comm->message)); $original_subject = str_replace(array_keys($commdata), array_values($commdata), stripslashes($this->comm->subject)); $html_message = wpautop($original_commmessage); $text_message = strip_tags(preg_replace('/\\<a .*?href="(.*?)".*?\\>.*?\\<\\/a\\>/is', '$0 [$1]', $original_commmessage)); add_filter('wp_mail_content_type', 'M_Communications_set_html_content_type'); $lambda_function = false; if ($wp_better_emails) { $html_message = apply_filters('wpbe_html_body', $wp_better_emails->template_vars_replacement($wp_better_emails->set_email_template($html_message, 'template'))); $text_message = apply_filters('wpbe_plaintext_body', $wp_better_emails->template_vars_replacement($wp_better_emails->set_email_template($text_message, 'plaintext_template'))); // lets use WP Better Email to wrap communication content if the plugin is used $lambda_function = create_function('', sprintf('return "%s";', addslashes($text_message))); add_filter('wpbe_plaintext_body', $lambda_function); add_filter('wpbe_plaintext_body', 'stripslashes', 11); } elseif (!defined('MEMBERSHIP_DONT_WRAP_COMMUNICATION')) { $html_message = "<html><head></head><body>{$html_message}</body></html>"; } @wp_mail($member->user_email, stripslashes($original_subject), $html_message); remove_filter('wp_mail_content_type', 'M_Communications_set_html_content_type'); if ($lambda_function) { remove_filter('wpbe_plaintext_body', $lambda_function); remove_filter('wpbe_plaintext_body', 'stripslashes', 11); } }
function popover_sendpayment_form($user_id = false) { global $M_options; $sub = $to_sub_id = false; $logged_in = is_user_logged_in(); $subscription = isset($_REQUEST['subscription']) ? $_REQUEST['subscription'] : 0; // free subscription processing if ($logged_in && $subscription) { $sub = Membership_Plugin::factory()->get_subscription($subscription); if ($sub->is_free()) { $to_sub_id = $subscription; } } // coupon processing $coupon = filter_input(INPUT_POST, 'coupon_code'); if ($logged_in && $coupon && $subscription) { $coupon = new M_Coupon($coupon); $coupon_obj = $coupon->get_coupon(); if ($coupon->valid_coupon() && $coupon_obj->discount >= 100 && $coupon_obj->discount_type == 'pct') { $to_sub_id = $subscription; $coupon->increment_coupon_used(); } } if ($to_sub_id) { $membership = Membership_Plugin::factory()->get_member(get_current_user_id()); $membership->create_subscription($to_sub_id); if (!empty($M_options['registrationcompleted_message'])) { $html = '<div class="header"><h1>'; $html .= sprintf(__('Subscription %s has been added.', 'membership'), $sub ? $sub->sub_name() : ''); $html .= '</h1></div><div class="fullwidth">'; $html .= stripslashes(wpautop($M_options['registrationcompleted_message'])); $html .= '<a class="button button-primary ' . esc_attr(apply_filters('membership_subscription_button_color', '')) . '" href="' . M_get_account_permalink() . '">' . __('Go to your account', 'membership') . '</a>'; $html .= '</div>'; echo $html; } else { wp_send_json(array('redirect' => strpos(home_url(), 'https://') === 0 ? str_replace('https:', 'http:', M_get_registrationcompleted_permalink()) : M_get_registrationcompleted_permalink())); } exit; } // render template ob_start(); echo apply_filters('membership_popover_sendpayment_form_before_content', ''); if (defined('MEMBERSHIP_POPOVER_SENDPAYMENT_FORM') && is_readable(MEMBERSHIP_POPOVER_SENDPAYMENT_FORM)) { include MEMBERSHIP_POPOVER_SENDPAYMENT_FORM; } else { $filename = apply_filters('membership_override_popover_sendpayment_form', membership_dir('membershipincludes/includes/popover_payment.form.php')); if (is_readable($filename)) { include $filename; } } echo apply_filters('membership_popover_sendpayment_form_after_content', ob_get_clean()); exit; }
function send_message($user_id, $sub_id = false, $level_id = false) { $this->comm = $this->get_communication(); $M_options = get_option('membership_options'); $commdata = apply_filters('membership_comm_constants_list', $this->commconstants); $member = new M_Membership($user_id); foreach ($commdata as $key => $value) { switch ($key) { case '%blogname%': $commdata[$key] = get_option('blogname'); break; case '%blogurl%': $commdata[$key] = get_option('home'); break; case '%username%': $commdata[$key] = $member->user_login; break; case '%usernicename%': $commdata[$key] = $member->user_nicename; break; case '%networkname%': $commdata[$key] = get_site_option('site_name'); break; case '%networkurl%': $commdata[$key] = get_site_option('siteurl'); break; case '%subscriptionname%': if (!$sub_id) { $ids = $member->get_subscription_ids(); if (!empty($ids)) { $sub_id = $ids[0]; } } if (!empty($sub_id)) { $sub =& new M_Subscription($sub_id); $commdata[$key] = $sub->sub_name(); } else { $commdata[$key] = ''; } break; case '%levelname%': if (!$level_id) { $ids = $member->get_level_ids(); if (!empty($ids)) { $level_id = $ids[0]->level_id; } } if (!empty($level_id)) { $level =& new M_Level($level_id); $commdata[$key] = $level->level_title(); } else { $commdata[$key] = ''; } break; case '%accounturl%': $commdata[$key] = M_get_account_permalink(); break; default: $commdata[$key] = apply_filters('membership_commfield_' . $key, '', $user_id); break; } } // Globally replace the values in the ping and then make it into an array to send $commmessage = str_replace(array_keys($commdata), array_values($commdata), stripslashes($this->comm->message)); if (!empty($member->user_email)) { $res = @wp_mail($member->user_email, stripslashes($this->comm->subject), stripslashes($commmessage)); } }