public static function get_instance() { if (!isset(self::$instance) && !self::$instance instanceof RM_Utilities) { self::$instance = new RM_Utilities(); } return self::$instance; }
public function manage($model, $service, $request, $params) { if (isset($request->req['rm_action']) && $request->req['rm_action'] === 'delete') { $this->remove_field($model, $service, $request, $params); } if (isset($request->req['rm_form_id'])) { $fields_data = $service->get_all_form_fields($request->req['rm_form_id']); } else { die(RM_UI_Strings::get('MSG_NO_FORM_SELECTED')); } foreach ($fields_data as $index => $field_data) { if ($field_data->field_type === 'Price') { $price_field = $service->get('PAYPAL_FIELDS', array('field_id' => $field_data->field_value), array('%d'), 'row'); if ($price_field && isset($price_field->type)) { if ($price_field->type !== 'fixed') { unset($fields_data[$index]); } } } elseif ($field_data->field_type === 'File' || $field_data->field_type === 'Repeatable' || $field_data->field_type === 'Map' || $field_data->field_type === 'Address') { unset($fields_data[$index]); } } $data = new stdClass(); $data->fields_data = $fields_data; $data->forms = RM_Utilities::get_forms_dropdown($service); $data->field_types = RM_Utilities::get_field_types(); $data->form_id = $request->req['rm_form_id']; $view = $this->mv_handler->setView("field_manager"); $view->render($data); }
public function show_form($model, $service, $request, $params) { $data = new stdClass(); $data->forms = RM_Utilities::get_forms_dropdown($service); if (isset($request->req['rm_form_id'])) { $data->current_form_id = $request->req['rm_form_id']; } else { //Get first form's id in this case reset($data->forms); $data->current_form_id = (string) key($data->forms); } $data->analysis = $this->calculate_form_stats($data->current_form_id, $service); //For pagination $entries_per_page = 10; $req_page = isset($request->req['rm_reqpage']) && $request->req['rm_reqpage'] > 0 ? $request->req['rm_reqpage'] : 1; $offset = ($req_page - 1) * $entries_per_page; $total_entries = $data->analysis->total_entries; $data->rm_slug = $request->req['page']; $data->stat_data = $service->get_form_stats($data->current_form_id, $offset, $entries_per_page); $data->total_pages = (int) ($total_entries / $entries_per_page) + ($total_entries % $entries_per_page == 0 ? 0 : 1); $data->curr_page = $req_page; $data->starting_serial_number = $offset + 1; //Pagination Ends $view = $this->mv_handler->setView("form_analytics"); $view->render($data); }
/** * Runs all the actions for plugin activation * * @since 3.0.0 */ public static function activate($network_wide) { RM_Table_Tech::create_tables($network_wide); RM_Utilities::create_submission_page(); error_log("4xx"); error_log(self::migrate($network_wide)); }
public function __construct($id, $label, $options, $value, $page_no = 1, $is_primary = false, $extra_opts = null) { if (isset($options['value'])) { if (!is_array($options['value'])) { $options['value'] = RM_Utilities::trim_array(explode(',', $options['value'])); } else { $options['value'] = $options['value']; } } parent::__construct($id, 'Select', $label, $options, $value, $page_no, $is_primary, $extra_opts); if (isset($options['multiple'])) { $multiple = $options['multiple']; } else { $multiple = ''; } $options = array(); if (!is_array($value)) { $tmp_options = RM_Utilities::trim_array(explode(',', $value)); } else { $tmp_options = $value; } foreach ($tmp_options as $val) { $options[$val] = trim($val); } if ($multiple == 'multiple') { $options = array(null => RM_UI_Strings::get('SELECT_FIELD_MULTI_OPTION')) + $options; } else { $options = array(null => RM_UI_Strings::get('SELECT_FIELD_FIRST_OPTION')) + $options; } $this->field_value = $options; }
/** * Sanitizes the request variable * * @since 1.0.0 */ public static function sanitize_request($req) { $request = RM_Utilities::trim_array($req); if (isset($_GET['page']) && is_array($request) && is_string($_GET['page'])) { $request['page'] = trim(filter_var($_GET['page'], FILTER_SANITIZE_STRING)); } return $request; }
public function manage($model, $service, $request, $params) { $data = new stdClass(); $data->forms = RM_Utilities::get_forms_dropdown($service); if (isset($request->req['rm_form_id'])) { $data->current_form_id = $request->req['rm_form_id']; } else { //Get first form's id in this case reset($data->forms); $data->current_form_id = (string) key($data->forms); //Set request parameter manually so wp-editor hook can use it. $_REQUEST['rm_form_id'] = $data->current_form_id; } $data->queue_view = false; if (isset($request->req['rm_queues']) && $request->req['rm_queues'] == 'true') { $data->queue_view = true; $data->queues = $service->get_queues(); $data->queue_count = count($data->queues); } if ($this->mv_handler->validateForm("invitation_mail_content")) { //echo "<pre>", var_dump($request->req),die; $form_id = $data->current_form_id; if (!isset($data->forms[$form_id])) { die("Error: INVALID FORM ID, RETRY."); } $res = $service->add_job($form_id, $request->req["rm_mail_subject"], $request->req["rm_mail_body"]); //Always check via isset for this error in template file $data->no_mail_error = $res == false; // ? true : false; rm_start_cron(); //Some return condition maybe? } /*$job = new stdClass; $job->total = RM_Job_Manager::get_job_total($data->current_form_id); if($job->total === null) { $data->is_job_running = false; $job->offset = null; $job->started_on = null; } else { $data->is_job_running = true; $job->offset = RM_Job_Manager::get_job_offset($data->current_form_id); $start_time = RM_Job_Manager::get_job_starting_time($data->current_form_id); $job->started_on = RM_Utilities::localize_time($start_time,'d M Y'); }*/ $data->job = $service->get_job_stat($data->current_form_id); //$job; $data->total_resp = $service->get_resp_count($data->current_form_id); $view = $this->mv_handler->setView("invitations"); $view->render($data); }
public function get_job_stat($form_id) { $job = new stdClass(); $job->total = RM_Job_Manager::get_job_total($form_id); if ($job->total === null) { $job->is_job_running = false; $job->offset = null; $job->started_on = null; } else { $job->is_job_running = true; $job->offset = RM_Job_Manager::get_job_offset($form_id); $start_time = RM_Job_Manager::get_job_starting_time($form_id); $job->started_on = RM_Utilities::localize_time($start_time, 'd M Y'); } return $job; }
public function add($model, $service, $request, $params) { //die("GOT IT!!!!"); if ($this->mv_handler->validateForm("add-paypal-field")) { if (isset($request->req['multisel_name_value'])) { $request->req['option_label'] = maybe_serialize($request->req['multisel_name_value']); $request->req['option_price'] = maybe_serialize($request->req['multisel_price_value']); } //die("GOT IT!!!!"); if (isset($request->req['show_on_form'])) { $request->req['extra_options'] = 'yes'; } else { $request->req['extra_options'] = 'no'; } $model->set($request->req); // echo "AND NOW PARAMS:"; // var_dump($params); // die; if (isset($request->req['field_id'])) { $service->update($model, $service, $request, $params); } else { $service->add($model, $service, $request, $params); } RM_Utilities::redirect(admin_url('/admin.php?page=' . $params['xml_loader']->request_tree->success)); //$this->view->render(); } else { $data = new stdClass(); // Edit for request if (isset($request->req['rm_field_id'])) { $model->load_from_db($request->req['rm_field_id']); if ($model->extra_options != 'yes') { $data->show_on_form = 0; } else { $data->show_on_form = 1; } } else { $data->show_on_form = 1; } $data->model = $model; $view = $this->mv_handler->setView("paypal_field_add"); $data->selected_field = $request->req['rm_field_type']; $view->render($data); } }
public function manage($model, $service, $request, $params) { $data = new stdClass(); if (isset($request->req['rm_field_to_search']) && isset($request->req['rm_value_to_serach']) && (int) $request->req['rm_field_to_search']) { $field_id = $request->req['rm_field_to_search']; $field_value = $request->req['rm_value_to_serach']; } else { $field_id = null; $field_value = null; } if (isset($request->req['rm_form_id'])) { $form_id = $request->req['rm_form_id']; } else { $form_id = $service->get('FORMS', 1, array('%d'), 'var', 0, 15, $column = 'form_id', null, true); } if ((int) $field_id) { $data->searched = true; } else { $data->searched = false; } $data->to_search = new stdClass(); $data->to_search->id = $field_id; $data->to_search->value = $field_value; $data->form_id = $form_id; $data->forms = RM_Utilities::get_forms_dropdown($service); $data->fields = $service->get_all_form_fields($form_id); //$data->submissions = $service->get('SUBMISSIONS', array('form_id' => $form_id), array('%d'), 'results', 0, 100, '*', $sort_by = null, $descending = true); $data->interval = isset($request->req['rm_interval']) ? $request->req['rm_interval'] : 'all'; $data->total_entries = count(RM_DBManager::get_results_for_last($data->interval, $form_id, $field_id, $field_value)); //echo "<pre>",var_dump($data->x), die; $data->rm_slug = $request->req['page']; //Pagination $entries_per_page = 10; $req_page = isset($request->req['rm_reqpage']) && $request->req['rm_reqpage'] > 0 ? $request->req['rm_reqpage'] : 1; $offset = ($req_page - 1) * $entries_per_page; $total_entries = $data->total_entries; $data->total_pages = (int) ($total_entries / $entries_per_page) + ($total_entries % $entries_per_page == 0 ? 0 : 1); $data->curr_page = $req_page; $data->submissions = RM_DBManager::get_results_for_last($data->interval, $form_id, $field_id, $field_value, $offset, $entries_per_page, 'submission_id', true); $view = $this->mv_handler->setView('submissions_manager'); $view->render($data); }
public function charge($data, $pricing_details) { $curr_date = RM_Utilities::get_current_time(); $stripe_api_key = $this->options->get_value_of('stripe_api_key'); if ($stripe_api_key == null) { return false; } if ($pricing_details->total_price <= 0.0) { return true; } //Zero amount case. $global_options = new RM_Options(); // Get the credit card details submitted by the form $error = ''; $success = ''; // Create the charge on Stripe's servers - this will charge the user's card $items = array(); foreach ($pricing_details->billing as $detail) { $items[] = $detail->label; } $response = ''; $items_str = implode(',', $items); try { \Stripe\Stripe::setApiKey($stripe_api_key); //sk_test_GsT4d690JZzbFk48w0GhsrIX $charge = \Stripe\Charge::create(array("amount" => $pricing_details->total_price * 100, "currency" => strtolower($this->currency), "source" => $data->stripeToken, "description" => $items_str)); $response = $charge->getLastResponse(); $response_body = json_decode($response->body); } catch (Stripe_InvalidRequestError $e) { return false; } catch (\Stripe\Error\Card $e) { //echo 'test'; die; $log_entry_id = RM_DBManager::insert_row('PAYPAL_LOGS', array('submission_id' => $data->submission_id, 'form_id' => $data->form_id, 'txn_id' => '', 'status' => 'Card Declined', 'total_amount' => $pricing_details->total_price, 'currency' => $this->currency, 'posted_date' => $curr_date), array('%d', '%d', '%s', '%s', '%f', '%s', '%s')); return false; } if ($response->code == "200") { $log_entry_id = RM_DBManager::insert_row('PAYPAL_LOGS', array('submission_id' => $data->submission_id, 'form_id' => $data->form_id, 'txn_id' => $response_body->balance_transaction, 'status' => $response_body->status, 'total_amount' => $pricing_details->total_price, 'currency' => $this->currency, 'posted_date' => $curr_date), array('%d', '%d', '%s', '%s', '%f', '%s', '%s')); return true; } return false; }
public function display($model, $service, $request, $params) { $data = new stdClass(); $submissions = $service->get('SUBMISSIONS', 1, null, 'results', 0, 10, '*', 'submitted_on', true); $sub_data = array(); $count = 0; if ($submissions) { foreach ($submissions as $submission) { //echo "<br>ID: ".$submission->form_id." : ".RM_Utilities::localize_time($submission->submitted_on, 'M dS Y, h:ia')." : "; $name = $service->get('FORMS', array('form_id' => $submission->form_id), array('%d'), 'var', 0, 10, 'form_name'); $date = RM_Utilities::localize_time($submission->submitted_on, 'M dS Y, h:ia'); $payment_status = $service->get('PAYPAL_LOGS', array('submission_id' => $submission->submission_id), array('%d'), 'var', 0, 10, 'status'); $sub_data[] = (object) array('submission_id' => $submission->submission_id, 'name' => $name, 'date' => $date, 'payment_status' => $payment_status); $count++; } } $data->submissions = $sub_data; $data->total_sub = $count; $view = $this->mv_handler->setView("dashboard_widget"); $view->render($data); }
public function form($model, $service, $request, $params) { if (isset($request->req['rm_target'])) { if ($request->req['rm_target'] == 'fbcb') { $service->facebook_login_callback(); } } if ($this->mv_handler->validateForm("rm_login_form")) { $user = $service->login($request); if (is_wp_error($user)) { Form::setError('rm_login_form', $user->get_error_message()); } else { $redirect_to = RM_Utilities::after_login_redirect($user); RM_Utilities::redirect($redirect_to); die; } } $data = new stdClass(); //$service->facebook_login_callback(); $data->facebook_html = $service->facebook_login_html(); $view = $this->mv_handler->setView('login', true); return $view->read($data); }
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); } }
private function sanitize_password($val) { return RM_Utilities::enc_str($val); }
<?php $field_names[$j] = isset($data->fields[$i]->field_id) ? $data->fields[$i]->field_id : null; $j++; } } ?> <th><?php echo RM_UI_Strings::get("ACTION"); ?> </th></tr> <?php if (is_array($data->submissions) || is_object($data->submissions)) { foreach ($data->submissions as $submission) { $submission->data_us = RM_Utilities::strip_slash_array(maybe_unserialize($submission->data)); ?> <tr> <td><input class="rm_checkbox_group" type="checkbox" value="<?php echo $submission->submission_id; ?> " name="rm_selected[]"></td> <?php for ($i = 0; $i < 4; $i++) { $value = null; foreach ($submission->data_us as $key => $sub_data) { if ($key == $field_names[$i]) { $value = $sub_data->value; } }
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 widget($model, RM_User_Services $service, $request, $params) { if ($params['user'] instanceof WP_User) { $data = new stdClass(); $submissions = $service->get_submissions_by_email($params['user']->user_email, 10); $sub_data = array(); $count = 0; if ($submissions) { foreach ($submissions as $submission) { //echo "<br>ID: ".$submission->form_id." : ".RM_Utilities::localize_time($submission->submitted_on, 'M dS Y, h:ia')." : "; $name = $service->get('FORMS', array('form_id' => $submission->form_id), array('%d'), 'var', 0, 10, 'form_name'); $date = RM_Utilities::localize_time($submission->submitted_on, 'M dS Y, h:ia'); $payment_status = $service->get('PAYPAL_LOGS', array('submission_id' => $submission->submission_id), array('%d'), 'var', 0, 10, 'status'); $sub_data[] = (object) array('submission_id' => $submission->submission_id, 'name' => $name, 'date' => $date, 'payment_status' => $payment_status); $count++; } } $data->submissions = $sub_data; $data->total_sub = $count; $view = $this->mv_handler->setView('user_edit_widget'); $view->render($data); } }
public function set_field_options($options) { $field_options = maybe_unserialize($options); $this->field_options = RM_Utilities::merge_object($field_options, $this->field_options); }
public function create_user_activation_link($user_id) { if ((int) $user_id) { $pass = wp_generate_password(10, false); $activation_code = md5($pass); if (!update_user_meta($user_id, 'rm_activation_code', $activation_code)) { return false; } $user_data_obj = new stdClass(); $user_data_obj->user_id = $user_id; $user_data_obj->activation_code = $activation_code; $user_data_json = json_encode($user_data_obj); $user_data_enc = urlencode(RM_Utilities::enc_str($user_data_json)); $user_activation_link = admin_url('admin-ajax.php') . '?action=rm_activate_user&user=' . $user_data_enc; return $user_activation_link; } return false; }
function access_control($model, $service, $request, $params) { if (isset($request->req['rm_form_id'])) { $model->load_from_db($request->req['rm_form_id']); $data = new stdClass(); $data->model = $model; $data->form_id = $request->req['rm_form_id']; $data->all_roles = RM_Utilities::user_role_dropdown(); $view = $this->mv_handler->setView('form_access_control_sett'); } else { $data = RM_UI_Strings::get('MSG_FS_NOT_AUTHORIZED'); // $view = $this->mv_handler->setView('show_notice'); } $view->render($data); }
public function update_into_db() { if (!$this->initialized) { return false; } if (!$this->note_id) { return false; } $data = array('submission_id' => $this->submission_id, 'notes' => $this->notes, 'status' => $this->status, 'last_edit_date' => RM_Utilities::get_current_time(), 'last_edited_by' => get_current_user_id(), 'note_options' => maybe_serialize($this->note_options)); $data_specifiers = array('%d', '%s', '%s', '%s', '%s', '%s'); $result = RM_DBManager::update_row('NOTES', $this->note_id, $data, $data_specifiers); if (!$result) { return false; } return true; }
public function get_data() { return RM_Utilities::strip_slash_array(maybe_unserialize($this->data)); }
public function rm_user_form_render($attribute) { if (RM_Utilities::fatal_errors()) { ob_start(); include_once RM_ADMIN_DIR . 'views/template_rm_cant_continue.php'; $html = ob_get_clean(); return $html; } $xml_loader = RM_XML_Loader::getInstance(plugin_dir_path(__FILE__) . 'rm_config.xml'); $request = new RM_Request($xml_loader); $request->setReqSlug('rm_user_form_process', true); $params = array('request' => $request, 'xml_loader' => $xml_loader, 'form_id' => isset($attribute['id']) ? $attribute['id'] : null); $this->controller = new RM_Main_Controller($params); return $this->controller->run(); }
public function migrate_submissions($offset = 0, $limit = 9999999) { global $wpdb; $qry = ""; $fields = array(); $pfields = array(); $plogs = array(); $form_field = array(); $data_mapping = $this->value_map['submissions']; $dst_data = array(); $dst_data_sub = array(); $users = array(); $emails = array(); $dbcolumns = array('sub_field_id', 'submission_id', 'field_id', 'form_id', 'value'); $dbcolumns_sub = array('submission_id', 'form_id', 'data', 'user_email', 'submitted_on', 'unique_token'); //$dbcolumns_sub_ph = array('%d', '%d', '%s', '%s', '%s', '%s'); //$dbcolumns_ph = array('%d', '%d', '%d', '%d', '%s'); $dbcolumns_sub_ph = "(%d,%d,%s,%s,%s,%s)"; $dbcolumns_ph = "(%d,%d,%d,%d,%s)"; $all_sub = array(); $all_sub_fields = array(); $table_name_fields = $wpdb->prefix . 'crf_fields'; $table_name_pfields = $wpdb->prefix . 'crf_fields'; $table_name_plogs = $wpdb->prefix . 'crf_paypal_log'; $table_name_src = $wpdb->prefix . 'crf_submissions'; $table_name_dst = $wpdb->prefix . 'rm_submission_fields'; $table_name_dst_sub = $wpdb->prefix . 'rm_submissions'; $table_name_fields_rm = $wpdb->prefix . 'rm_fields'; $options = new RM_Options(); $srcdata = $wpdb->get_results("SELECT * FROM {$table_name_src} WHERE 1 LIMIT {$offset}, {$limit}"); $fieldsdata = $wpdb->get_results("SELECT * FROM {$table_name_fields} WHERE 1"); $pfieldsdata = $wpdb->get_results("SELECT * FROM {$table_name_pfields} WHERE 1"); $plogsdata = $wpdb->get_results("SELECT * FROM {$table_name_plogs} WHERE 1"); if (is_array($fieldsdata)) { foreach ($fieldsdata as $f_data) { $fields[$f_data->Id] = $f_data; if (!isset($form_field[$f_data->Form_Id])) { $form_field[$f_data->Form_Id] = array(); } if (!isset($form_field[$f_data->Form_Id][$f_data->Type])) { $form_field[$f_data->Form_Id][$f_data->Type] = $f_data->Id; } } unset($fieldsdata); if (is_array($plogsdata)) { foreach ($plogsdata as $p_data) { $log = maybe_unserialize($p_data->log); $plogs[$log['custom']] = $log['mc_currency']; } } unset($plogsdata); if (is_array($pfieldsdata)) { foreach ($pfieldsdata as $p_data) { $pfields[$p_data->Id] = $p_data; } } unset($pfieldsdata); $i = 0; if ($srcdata && is_array($srcdata)) { foreach ($srcdata as $s) { $dst_data[$i] = array(); $is_row_valid = true; if (isset($form_field[$s->form_id]['email'])) { $ef_id = $form_field[$s->form_id]['email']; } else { $ef_id = 0; } if (!isset($dst_data_sub[$s->submission_id])) { $dst_data_sub[$s->submission_id] = array(); foreach ($dbcolumns_sub as $index) { $dst_data_sub[$s->submission_id][$index] = null; } $dst_data_sub[$s->submission_id]['submission_id'] = $s->submission_id; $dst_data_sub[$s->submission_id]['form_id'] = $s->form_id; $dst_data_sub[$s->submission_id]['data'] = array(); } foreach ($data_mapping as $a => $b) { $value = $s->{$a}; if ($a === 'field') { switch ($s->{$a}) { case 'first_name': if (isset($form_field[$s->form_id]['first_name'])) { $f_id = $form_field[$s->form_id]['first_name']; $value = $fields[$f_id]->Id; $dst_data_sub[$s->submission_id]['data'][$value] = new stdClass(); $dst_data_sub[$s->submission_id]['data'][$value]->label = stripslashes($fields[$f_id]->Name); $dst_data_sub[$s->submission_id]['data'][$value]->value = stripslashes($s->value); } else { $dst_data_sub[$s->submission_id]['data']['first_name'] = new stdClass(); $dst_data_sub[$s->submission_id]['data']['first_name']->label = 'first_name'; $dst_data_sub[$s->submission_id]['data']['first_name']->value = stripslashes($s->value); } if (!isset($users[$s->submission_id])) { $users[$s->submission_id] = array(); } $users[$s->submission_id]['first_name'] = $s->value; break; case 'last_name': if (isset($form_field[$s->form_id]['last_name'])) { $f_id = $form_field[$s->form_id]['last_name']; $value = $fields[$f_id]->Id; $dst_data_sub[$s->submission_id]['data'][$value] = new stdClass(); $dst_data_sub[$s->submission_id]['data'][$value]->label = stripslashes($fields[$f_id]->Name); $dst_data_sub[$s->submission_id]['data'][$value]->value = stripslashes($s->value); } else { $dst_data_sub[$s->submission_id]['data']['last_name'] = new stdClass(); $dst_data_sub[$s->submission_id]['data']['last_name']->label = 'last_name'; $dst_data_sub[$s->submission_id]['data']['last_name']->value = stripslashes($s->value); } if (!isset($users[$s->submission_id])) { $users[$s->submission_id] = array(); } $users[$s->submission_id]['last_name'] = $s->value; break; case 'description': if (isset($form_field[$s->form_id]['description'])) { $f_id = $form_field[$s->form_id]['description']; $value = $fields[$f_id]->Id; $dst_data_sub[$s->submission_id]['data'][$value] = new stdClass(); $dst_data_sub[$s->submission_id]['data'][$value]->label = stripslashes($fields[$f_id]->Name); $dst_data_sub[$s->submission_id]['data'][$value]->value = stripslashes($s->value); } else { $dst_data_sub[$s->submission_id]['data']['description'] = new stdClass(); $dst_data_sub[$s->submission_id]['data']['description']->label = 'description'; $dst_data_sub[$s->submission_id]['data']['description']->value = stripslashes($s->value); } if (!isset($users[$s->submission_id])) { $users[$s->submission_id] = array(); } $users[$s->submission_id]['bio'] = $s->value; break; case 'token': $dst_data_sub[$s->submission_id]['unique_token'] = $s->value; $is_row_valid = false; break; case 'entry_time': $dst_data_sub[$s->submission_id]['submitted_on'] = RM_Utilities::get_current_time($s->value); $is_row_valid = false; break; case 'user_email': $dst_data_sub[$s->submission_id]['user_email'] = $s->value; $dst_data_sub[$s->submission_id]['data']['user_email'] = new stdClass(); $dst_data_sub[$s->submission_id]['data']['user_email']->label = 'user_email'; $dst_data_sub[$s->submission_id]['data']['user_email']->value = stripslashes($s->value); if (!isset($users[$s->submission_id])) { $users[$s->submission_id] = array(); } $users[$s->submission_id]['user_email'] = $s->value; break; case 'form_type': $is_row_valid = false; if (!isset($users[$s->submission_id])) { $users[$s->submission_id] = array(); } $users[$s->submission_id]['form_type'] = $s->value; break; case 'user_approval': $is_row_valid = false; if (!isset($users[$s->submission_id])) { $users[$s->submission_id] = array(); } $users[$s->submission_id]['user_approval'] = $s->value; break; case 'role': $is_row_valid = false; if (!isset($users[$s->submission_id])) { $users[$s->submission_id] = array(); } $users[$s->submission_id]['role'] = $s->value; break; case 'payment_status': $is_row_valid = false; if (!isset($users[$s->submission_id])) { $users[$s->submission_id] = array(); } $users[$s->submission_id]['payment_status'] = $s->value; break; case 'user_name': $is_row_valid = false; if (!isset($users[$s->submission_id])) { $users[$s->submission_id] = array(); } $users[$s->submission_id]['user_name'] = $s->value; break; case 'user_pass': $is_row_valid = false; if (!isset($users[$s->submission_id])) { $users[$s->submission_id] = array(); } $users[$s->submission_id]['user_pass'] = $s->value; break; case 'pass_encrypt': $is_row_valid = false; if (!isset($users[$s->submission_id])) { $users[$s->submission_id] = array(); } $users[$s->submission_id]['pass_encrypt'] = $s->value; break; default: $tmp = explode('_', $s->{$a}); $f_id = array_pop($tmp); if (is_numeric($f_id)) { $label = implode('_', $tmp); $value = $f_id; if (isset($fields[$f_id]) && $fields[$f_id]->Name === $label) { switch ($fields[$f_id]->Type) { case 'checkbox': case 'repeatable_text': $s->value = maybe_serialize(explode(',', $s->value)); break; case 'DatePicker': $x = explode('-', $s->value); $s->value = $x[1] . '/' . $x[2] . '/' . $x[0]; break; case 'file': $x = explode(',', $s->value); $x['rm_field_type'] = 'File'; $s->value = maybe_serialize($x); break; case 'pricing': if (isset($plogs[$s->submission_id])) { $curr = $plogs[$s->submission_id]; } else { $curr = get_option('crf_currency'); } if (!$curr) { $curr = 'USD'; } if ($pfields[$fields[$f_id]->Value]->Type === 'checkbox') { $v = array(); $ab = explode(',', $s->value); foreach ($ab as $ba) { $ac = explode('_', $ba); $pr = array_pop($ac); $pr_name = implode('_', $ac); $v[] = $pr_name . '(' . $options->get_formatted_amount($pr, $curr) . ')'; } $s->value = maybe_serialize($v); } elseif ($pfields[$fields[$f_id]->Value]->Type === 'checkbox') { $ac = explode('_', $ba); $pr = array_pop($ac); $pr_name = implode('_', $ac); $s->value = $pr_name . '(' . $options->get_formatted_amount($pr, $curr) . ')'; } else { $s->value = $options->get_formatted_amount($s->value, $curr); } break; } if ($ef_id === $f_id && !isset($emails[$s->submission_id])) { $emails[$s->submission_id] = new stdClass(); $emails[$s->submission_id]->id = $ef_id; $emails[$s->submission_id]->value = $s->value; } $dst_data_sub[$s->submission_id]['data'][$f_id] = new stdClass(); $dst_data_sub[$s->submission_id]['data'][$f_id]->label = stripslashes($fields[$f_id]->Name); $dst_data_sub[$s->submission_id]['data'][$f_id]->value = maybe_unserialize($s->value); } else { $dst_data_sub[$s->submission_id]['data'][$f_id] = new stdClass(); $dst_data_sub[$s->submission_id]['data'][$f_id]->label = stripslashes($label); $dst_data_sub[$s->submission_id]['data'][$f_id]->value = maybe_unserialize($s->value); } } else { $is_row_valid = false; } break; } } if ($is_row_valid) { if (isset($s->{$a}) && $value !== null) { $dst_data[$i][$b] = $value; } else { $dst_data[$i][$b] = null; } } } if ($is_row_valid) { $i++; } else { $dst_data[$i] = array(); } } if ($dst_data && count($dst_data) !== 0) { $qry .= "INSERT INTO {$table_name_dst} (`" . implode('`,`', $dbcolumns) . "`) values "; $i = 0; foreach ($dst_data as $d) { if (is_array($d) && count($d) !== 0) { foreach ($d as $d_single) { $all_sub_fields[] = $d_single; } if ($i === 0) { $qry .= $dbcolumns_ph; } else { $qry .= ", " . $dbcolumns_ph; } $i++; } } $qry_sub = "INSERT INTO {$table_name_dst_sub} (`" . implode('`,`', $dbcolumns_sub) . "`) values "; $i = 0; foreach ($dst_data_sub as $sub_id => $d_sub) { if (!isset($d_sub['user_email'])) { if (isset($emails[$sub_id])) { $dst_data_sub[$sub_id] = $emails[$sub_id]->value; $this->created[] = $d_sub['form_id']; $wpdb->update($table_name_fields_rm, array('is_field_primary' => 1), array('field_id' => $emails[$sub_id]->id), '%d', '%d'); } else { $dst_data_sub[$sub_id] = null; } } if (isset($d_sub['data'])) { $d_sub['data'] = maybe_serialize($d_sub['data']); } if (is_array($d_sub) && count($d_sub) !== 0) { foreach ($d_sub as $d_sub_single) { $all_sub[] = $d_sub_single; } if ($i === 0) { $qry_sub .= $dbcolumns_sub_ph; } else { $qry_sub .= ", " . $dbcolumns_sub_ph; } $i++; } } } else { error_log('no_data_sub_fields'); } if (count($users) !== 0) { foreach ($users as $user) { if ($user['form_type'] === 'reg_form' && (isset($user['user_approval']) && $user['user_approval'] != 'yes' || isset($user['payment_status']) && $user['payment_status'] === 'pending') && isset($user['user_email']) && is_email($user['user_email']) && !email_exists($user['user_email']) && isset($user['user_pass']) && isset($user['user_name'])) { $password = null; if (isset($user['pass_encrypt']) && $user['pass_encrypt'] == 1) { $password = $this->crf_encrypt_decrypt_pass('decrypt', $user['user_pass']); $password = $this->enc_str($password); } else { $password = $user['user_pass']; } $user_id = wp_create_user($user['user_name'], $password, $user['user_email']); update_user_meta($user_id, 'rm_user_status', 1); if (isset($user['first_name']) && $user['first_name']) { update_user_meta($user_id, 'first_name', 1); } if (isset($user['last_name']) && $user['last_name']) { update_user_meta($user_id, 'last_name', 1); } if (isset($user['bio']) && $user['bio']) { update_user_meta($user_id, 'description', 1); } } } } //$qry = esc_sql($qry); //error_log("Query: ".$qry); $result = $wpdb->query($wpdb->prepare($qry, $all_sub_fields)); if (!$result) { error_log('submission_fields_not_migrated'); } $result_sub = $wpdb->query($wpdb->prepare($qry_sub, $all_sub)); if (!$result_sub) { error_log('submissions_not_migrated'); } return; } } return false; }
public static function update_last_activity() { global $wpdb; $table_name = RM_Table_Tech::get_table_name_for('FRONT_USERS'); return $wpdb->query("UPDATE {$table_name} set `last_activity_time`= '" . RM_Utilities::get_current_time() . "'"); }
public function charge($data, $pricing_details) { $form_id = $data->form_id; $this_script = get_permalink(); if (false == $this_script) { $this_script = admin_url('admin-ajax.php?action=registrationmagic_embedform&form_id=' . $data->form_id); } $sign = strpos($this_script, '?') ? '&' : '?'; $i = 1; foreach ($pricing_details->billing as $item) { $this->paypal->add_field('item_name_' . $i, $item->label); $i++; } $i = 1; $total_amount = 0.0; foreach ($pricing_details->billing as $item) { $this->paypal->add_field('amount_' . $i, $item->price); $total_amount += floatval($item->price); $i++; } $invoice = (string) date("His") . rand(1234, 9632); $this->paypal->add_field('business', $this->paypal_email); // Call the facilitator eaccount $this->paypal->add_field('cmd', '_cart'); // cmd should be _cart for cart checkout $this->paypal->add_field('upload', '1'); $this->paypal->add_field('return', $this_script . $sign . 'rm_pproc=success&rm_pproc_id=0'); // return URL after the transaction got over $this->paypal->add_field('cancel_return', $this_script . $sign . 'rm_pproc=cancel&rm_pproc_id=0'); // cancel URL if the trasaction was cancelled during half of the transaction $this->paypal->add_field('notify_url', $this_script . $sign . 'rm_pproc=ipn&rm_pproc_id=0'); // Notify URL which received IPN (Instant Payment Notification) $this->paypal->add_field('currency_code', $this->currency); $this->paypal->add_field('invoice', $invoice); $this->paypal->add_field('page_style', $this->paypal_page_style); //Insert into PayPal log table $curr_date = RM_Utilities::get_current_time(); //date_i18n(get_option('date_format')); if ($total_amount <= 0.0) { $log_entry_id = RM_DBManager::insert_row('PAYPAL_LOGS', array('submission_id' => $data->submission_id, 'form_id' => $form_id, 'invoice' => $invoice, 'status' => 'Completed', 'total_amount' => $total_amount, 'currency' => $this->currency, 'posted_date' => $curr_date), array('%d', '%d', '%s', '%s', '%f', '%s', '%s')); return true; } else { $log_entry_id = RM_DBManager::insert_row('PAYPAL_LOGS', array('submission_id' => $data->submission_id, 'form_id' => $form_id, 'invoice' => $invoice, 'status' => 'Pending', 'total_amount' => $total_amount, 'currency' => $this->currency, 'posted_date' => $curr_date), array('%d', '%d', '%s', '%s', '%f', '%s', '%s')); } if (isset($data->user_id)) { $cstm_data = $log_entry_id . "|" . $data->user_id; } else { $cstm_data = $log_entry_id . "|0"; } $this->paypal->add_field('custom', $cstm_data); $this->paypal->add_field('return', $this_script . $sign . 'rm_pproc=success&rm_pproc_id=' . $log_entry_id); // return URL after the transaction got over $this->paypal->add_field('cancel_return', $this_script . $sign . 'rm_pproc=cancel&rm_pproc_id=' . $log_entry_id); // cancel URL if the trasaction was cancelled during half of the transaction $this->paypal->add_field('notify_url', $this_script . $sign . 'rm_pproc=ipn&rm_pproc_id=' . $log_entry_id); // Notify URL which received IPN (Instant Payment Notification) $this->paypal->submit_paypal_post(); // POST it to paypal return 'do_not_redirect'; //We do not want form redirect to work in case paypal processing is going on. }
public function update_into_db() { if (!$this->initialized) { return false; } if (!$this->id) { return false; } $data = array('email' => $this->email, 'otp_code' => $this->otp_code, 'last_activity_time' => RM_Utilities::get_current_time()); $data_specifiers = array('%s', '%s', '%s'); $result = RM_DBManager::update_row('FRONT_USERS', $this->field_id, $data, $data_specifiers); if (!$result) { return false; } return true; }
} require_once __DIR__ . '/template_rm_register.php'; } foreach ($data->fields_data as $field_data) { if ($field_data->field_type !== 'Password' || !$data->is_auto_generate) { $element_class = "Element_" . $field_data->field_type; $label = $field_data->field_label; if ($field_data->field_type == 'Price') { $name = $field_data->field_type . "_" . $field_data->field_id . "_" . $field_data->field_value; } else { $name = $field_data->field_type . "_" . $field_data->field_id; } if (isset($field_data->field_value)) { if ($field_data->field_type == 'Select') { $options = array(); $tmp_options = RM_Utilities::trim_array(explode(',', $field_data->field_value)); foreach ($tmp_options as $val) { $options[$val] = $val; } } elseif ($field_data->field_type == 'Radio' || $field_data->field_type == 'Checkbox' || $field_data->field_type == 'Terms') { $options = maybe_unserialize($field_data->field_value); } else { $options = $field_data->field_value; } } else { $options = null; } if (isset($field_data->field_options)) { $field_data->field_options = maybe_unserialize($field_data->field_options); } //var_dump($data->form->form_options);die;
} } $layout_radio_button_html_string = '<div class="rmrow"><div class="rmfield" for="layout_radio"><label>' . RM_UI_Strings::get('LABEL_LAYOUT') . '</label></div><div class="rminput"><ul class="rmradio">' . '<li><div id="layout_left_container"><div class="rmlayoutimage"><img src="' . $image_dir . '/label-left.png" /></div><input id="layout_radio-1" type="radio" name="form_layout" value="label_left" ' . $layout_checked_state['label_left'] . '>' . RM_UI_Strings::get('LABEL_LAYOUT_LABEL_LEFT') . '</div></li><li><div id="layout_top_container"><div class="rmlayoutimage"><img src="' . $image_dir . '/label-top.png" /></div><input id="layout_radio-2" type="radio" name="form_layout" value="label_top" ' . $layout_checked_state['label_top'] . '>' . RM_UI_Strings::get('LABEL_LAYOUT_LABEL_TOP') . '</div></li><li><div id="layout_two_columns_container"' . $two_col_class . '><div class="rmlayoutimage"><img src="' . $image_dir . '/two-column.png" /></div><input id="layout_radio-3" type="radio" name="form_layout" value="two_columns" ' . $layout_checked_state['two_columns'] . '>' . RM_UI_Strings::get('LABEL_LAYOUT_TWO_COLUMNS') . '</div></li></ul></div><div class="rmnote">' . RM_UI_Strings::get('HELP_OPTIONS_GEN_LAYOUT') . '</div></div>'; //echo $layout_radio_button_html_string; ?> <div class="rmagic"> <!--Dialogue Box Starts--> <div class="rmcontent"> <?php $pages = get_pages(); $wp_pages = RM_Utilities::wp_pages_dropdown(); $form = new Form("options_general"); $form->configure(array("prevent" => array("bootstrap", "jQuery"), "action" => "")); $form->addElement(new Element_HTML('<div class="rmheader">' . RM_UI_Strings::get('GLOBAL_SETTINGS_GENERAL') . '</div>')); $form->addElement(new Element_Select(RM_UI_Strings::get('LABEL_FORM_STYLE'), "theme", array("classic" => "Classic", "matchmytheme" => "Match my theme"), array("value" => $data['theme'], "id" => "theme_dropdown", "onchange" => "rm_toggle_visiblity_layouts(this)", "longDesc" => RM_UI_Strings::get('HELP_OPTIONS_GEN_THEME')))); $form->addElement(new Element_HTML($layout_radio_button_html_string)); //Disabled for now, IP capture is needed to limit submissions from a given IP address. Unnecessary setting. //$form->addElement(new Element_Checkbox(RM_UI_Strings::get('LABEL_CAPTURE_INFO'), "user_ip", array("yes" => ''), $data['user_ip'] == 'yes' ? array("value" => "yes") : array())); $form->addElement(new Element_Textarea(RM_UI_Strings::get('LABEL_ALLOWED_FILE_TYPES'), "buy_pro", array("value" => $data['allowed_file_types'], 'disabled' => 1, "longDesc" => RM_UI_Strings::get('ALLOWED_FILE_TYPES_HELP'), "validation" => new Validation_RegExp("/[a-zA-Z0-9| ]*/", RM_UI_Strings::get('MSG_INVALID_CHAR')), "longDesc" => RM_UI_Strings::get('HELP_OPTIONS_GEN_FILETYPES') . '<br><br>' . RM_UI_Strings::get('MSG_BUY_PRO_INLINE')))); $form->addElement(new Element_Checkbox(RM_UI_Strings::get('LABEL_ALLOWED_MULTI_FILES'), "buy_pro_2", array("yes" => ''), array("value" => "no", 'disabled' => 1, "longDesc" => RM_UI_Strings::get('HELP_OPTIONS_GEN_FILE_MULTIPLE') . "<br><br>" . RM_UI_Strings::get('MSG_BUY_PRO_INLINE')))); $form->addElement(new Element_Checkbox(RM_UI_Strings::get('LABEL_SHOW_PROG_BAR'), "display_progress_bar", array("yes" => ''), $data['display_progress_bar'] == 'yes' ? array("value" => "yes", "longDesc" => RM_UI_Strings::get('HELP_OPTIONS_GEN_PROGRESS_BAR')) : array("longDesc" => RM_UI_Strings::get('HELP_OPTIONS_GEN_PROGRESS_BAR')))); $selected = $data['default_registration_url'] !== null ? $data['default_registration_url'] : 0; $form->addElement(new Element_Select(RM_UI_Strings::get('LABEL_DEFAULT_REGISTER_URL'), "default_registration_url", $wp_pages, array("value" => $selected, "longDesc" => RM_UI_Strings::get('HELP_OPTIONS_GEN_REG_URL')))); $selected = $data['post_submission_redirection_url'] !== null ? $data['post_submission_redirection_url'] : 0; $form->addElement(new Element_Select(RM_UI_Strings::get('LABEL_AFTER_LOGIN_URL'), "post_submission_redirection_url", $wp_pages, array("value" => $selected, "longDesc" => RM_UI_Strings::get('HELP_OPTIONS_POST_SUB_REDIR')))); $form->addElement(new Element_Checkbox(RM_UI_Strings::get('LABEL_SHOW_FLOATING_ICON'), "display_floating_action_btn", array("yes" => ''), $data['display_floating_action_btn'] == 'yes' ? array("value" => "yes", "longDesc" => RM_UI_Strings::get('HELP_SHOW_FLOATING_ICON')) : array("longDesc" => RM_UI_Strings::get('HELP_SHOW_FLOATING_ICON'))));