public function notify_users($users, $type) { if (is_array($users) && !empty($users)) { $front_form_service = new RM_Front_Form_Service(); foreach ($users as $id) { $user = get_user_by('id', $id); $params = new stdClass(); $params->email = $user->user_email; $email = $front_form_service->prepare_email($type, null, $params); RM_Utilities::send_mail($email); } } }
public function notify_users($note) { $gopt = new RM_Options(); if ($gopt->get_value_of('user_notification_for_notes') == "yes") { if ($note->get_status() != 'publish') { return; } $submission = new RM_Submissions(); $submission->load_from_db($note->get_submission_id()); $email = new stdClass(); //echo '<pre>'; //print_r($submission); die; $email->to = $submission->get_user_email(); $from_email = $gopt->get_value_of('senders_email_formatted'); $header = "From: {$from_email}\r\n"; $header .= "MIME-Version: 1.0\r\n"; $header .= "Content-Type: text/html; charset=ISO-8859-1\r\n"; $email->subject = get_bloginfo('name', 'display') . " Notification from Admin "; $email->message = RM_UI_Strings::get('MSG_NOTE_FROM_ADMIN') . $note->get_notes(); $email->header = $header; $email->attachments = array(); RM_Utilities::send_mail($email); } }
public static function do_job() { //error_log("******* in the chronos ********"); $job_batch = get_option("rm_option_jobman_job", null); if ($job_batch == null) { return; } //echo "<br>Batch:<br>"; //return; //self::log_var_dump($job_batch); $gopts = new RM_Options(); $from_email = $gopts->get_value_of('senders_email_formatted'); $header = "From: {$from_email}\r\n"; $header .= "MIME-Version: 1.0\r\n"; $header .= "Content-Type: text/html; charset=utf-8\r\n"; foreach ($job_batch as $key => $job) { $results = RM_DBManager::get_submissions_for_form($job->form_id, $job->job_size, $job->offset); //echo "<br>in foreach:<br>"; //var_dump($results); if ($results != false) { foreach ($results as $result) { //error_log("Doing a job, email: " . $result->user_email); $sub_values = maybe_unserialize($result->data); $processed_msg = $job->mail_packet['message']; foreach ($job->form_fields as $field_placeholder) { $abab = explode("_", $field_placeholder); $field_id = $abab[1]; if (isset($sub_values[$field_id])) { if (is_array($sub_values[$field_id]->value)) { $sub_values[$field_id]->value = implode(",", $sub_values[$field_id]->value); } $processed_msg = str_replace("{{" . $field_placeholder . "}}", $sub_values[$field_id]->value, $processed_msg); } } $cron_mail = new stdClass(); $cron_mail->to = $result->user_email; $cron_mail->header = $header; $cron_mail->message = wpautop($processed_msg); $cron_mail->subject = $job->mail_packet['subject']; $cron_mail->attachments = array(); RM_Utilities::send_mail($cron_mail); //wp_mail($result->user_email, //$job->mail_packet['subject'] , //$processed_msg, //$header); } $job_batch[$key]->offset += count($results); //$job->job_size; if ($job->callback !== null) { $job->callback(true); } } if ($job_batch[$key]->offset >= $job_batch[$key]->total) { unset($job_batch[$key]); } } update_option("rm_option_jobman_job", $job_batch); }
public function process($model, $service, $request, $params) { if ($service->is_ip_banned()) { return $this->banned_view(); } global $rm_form_diary; if (count($rm_form_diary) > 0 && !isset($params['force_enable_multiform'])) { return; } if (isset($params['form_id']) && $params['form_id']) { $form_id = $params['form_id']; $fe_form = $this->form_factory->create_form($form_id); $form_name = 'form_' . $fe_form->get_form_id(); } else { return; } $fopts = $fe_form->get_form_options(); if ($fe_form->is_expired() && $fopts->post_expiry_action == 'switch_to_another_form') { $form_id = $fopts->post_expiry_form_id; if ($form_id) { $fe_form = $this->form_factory->create_form($form_id); $form_name = 'form_' . $fe_form->get_form_id(); } else { return; } } if (isset($request->req['rm_pproc'])) { $paypal_service = new RM_Paypal_Service(); ob_start(); $resp = $paypal_service->callback($request->req['rm_pproc'], isset($request->req['rm_pproc_id']) ? $request->req['rm_pproc_id'] : null); $paypal_callback_msg = ob_get_clean(); $x = new stdClass(); $x->form_options = $fe_form->get_form_options(); $x->form_name = $fe_form->get_form_name(); $after_sub_msg = $service->after_submission_proc($x); return $paypal_callback_msg . '<br><br>' . $after_sub_msg; } //Call form specific processing before submission. $form_preproc_response = $fe_form->pre_sub_proc($request->req, $params); if (isset($request->req['stat_id'])) { $stat_id = $request->req['stat_id']; } else { $stat_id = null; } if (isset($request->req['rm_form_sub_no']) && $request->req['rm_form_sub_no']) { $subbed_form_no = $request->req['rm_form_sub_no']; } else { $subbed_form_no = null; } if ($subbed_form_no && $fe_form->get_form_number() == $subbed_form_no && $form_preproc_response && $this->mv_handler->validateForm($form_name . "_" . $subbed_form_no) && !$service->is_browser_reload_duplication($stat_id)) { if ($service->is_off_limit_submission($form_id, $fe_form->get_form_options())) { die(RM_UI_Strings::get("ALERT_SUBMISSIOM_LIMIT")); } $primary_data = $fe_form->get_prepared_data($request->req, 'primary'); $service->update_stat_entry($stat_id); $db_data = $fe_form->get_prepared_data($request->req, 'dbonly'); $sub_detail = $service->save_submission($form_id, $db_data, $primary_data['user_email']->value); $form_options = $fe_form->get_form_options(); if ((int) $form_options->should_export_submissions === 1) { $service->export_to_external_url($form_options->export_submissions_to_url, $db_data); } if ($form_options->form_is_unique_token) { $token = $sub_detail->token; } else { $token = null; } if ($form_options->form_should_send_email) { $parameters = new stdClass(); //This is different then the $params in the argument of this function! $parameters->req = $request->req; $parameters->email = $primary_data['user_email']->value; $parameters->email_content = $form_options->form_email_content; $parameters->email_subject = $form_options->form_email_subject; $email = $service->prepare_email('to_registrar', $token, $parameters); RM_Utilities::send_mail($email); } $submissions = new RM_Submissions(); $submissions->load_from_db($sub_detail->submission_id); $parameters = new stdClass(); $parameters->sub_data = $submissions->get_data(); $parameters->form_name = $fe_form->get_form_name(); $email = $service->prepare_email('to_admin', $token, $parameters); RM_Utilities::send_mail($email); $params['sub_detail'] = $sub_detail; /* * Check for payment */ //also call Form specific method after submission $prevent_redirection = false; if ($fe_form->has_price_field()) { $params['paystate'] = 'pre_payment'; $fe_form->post_sub_proc($request->req, $params, false); $params['is_paid'] = $service->process_payment($fe_form, $request, $params); if ($params['is_paid'] === 'do_not_redirect') { $params['paystate'] = 'post_payment'; $fe_form->post_sub_proc($request->req, $params, false); $this->update_user_profile($primary_data['user_email']->value, $db_data, $service); $prevent_redirection = true; } else { $params['paystate'] = 'post_payment'; $fe_form->post_sub_proc($request->req, $params, $params['is_paid']); $this->update_user_profile($primary_data['user_email']->value, $db_data, $service); } } else { $params['paystate'] = 'na'; $fe_form->post_sub_proc($request->req, $params); $this->update_user_profile($primary_data['user_email']->value, $db_data, $service); } unset($parameters->sub_data); $parameters->form_options = $form_options; if (!$prevent_redirection) { return $service->after_submission_proc($parameters); } //This must be returned as there is no ob_start here at work. } else { $data = new stdClass(); $data->stat_id = $service->create_stat_entry($params); $data->fe_form = $fe_form; $force_multiple_form = isset($params['force_enable_multiform']) ? true : false; $view = $this->mv_handler->setView("user_form_nexgen", true); return $view->read($data, $force_multiple_form); } }
public function register_user($request, $form, $is_auto_generate, $is_paid = true) { $gopt = new RM_Options(); $username = $request->req['username']; if ($is_auto_generate != "yes") { $password = $request->req['password']; } else { $password = wp_generate_password(8, false, false); } $primary_emails = $this->get_primary_email_fields($form->form_id); $request_keys = array_keys($request->req); $emails = array_intersect($request_keys, $primary_emails); foreach ($emails as $email) { $email_field_name = $email; break; } $email = $request->req[$email_field_name]; $user_id = wp_create_user($username, $password, $email); if (is_wp_error($user_id)) { foreach ($user_id as $err) { foreach ($err as $error) { echo $error[0]; die; } } } else { /* * User created. Check if details are to send via an email */ $required_params = new stdClass(); $required_params->email = $email; $required_params->username = $username; $required_params->password = $password; if ($this->get_setting('send_password') === 'yes' || $this->get_setting('auto_generated_password') === 'yes') { $email_obj = $this->prepare_email('new_user', null, $form, $required_params); RM_Utilities::send_mail($email_obj); } /* * Deactivate the user in case auto approval is off */ if (!$is_paid || $gopt->get_value_of('user_auto_approval') != "yes") { $this->user_service->deactivate_user_by_id($user_id); $link = $this->user_service->create_user_activation_link($user_id); $required_params->link = $link; $email_obj = $this->prepare_email('user_activation', null, $form, $required_params); RM_Utilities::send_mail($email_obj); } /* * If role is chosen by registrar */ if (isset($request->req['role_as']) && !empty($request->req['role_as'])) { $this->user_service->set_user_role($user_id, $request->req['role_as']); } else { $tmp = $form->get_default_form_user_role(); if (!empty($tmp)) { /* * Assign user role if configured by default */ $this->user_service->set_user_role($user_id, $form->get_default_form_user_role()); } } } return $user_id; }