/** * Create a submission. * * @access public * @since 2.7 * @return int $sub_id */ public function create($form_id = '') { // Create Submission $post = array('post_status' => 'publish', 'post_type' => 'nf_sub'); $sub_id = wp_insert_post($post); // Add our form ID to the submission Ninja_Forms()->sub($sub_id)->update_form_id($form_id); // Get the current sequential ID $form = ninja_forms_get_form_by_id($form_id); if (isset($form['data']['last_sub'])) { $seq_num = $form['data']['last_sub'] + 1; } else { // If we don't have a starting number, start at 1 $seq_num = 1; } $seq_num = apply_filters('nf_sub_seq_num', $seq_num, $form_id); // Add the sequential ID to the post meta Ninja_Forms()->sub($sub_id)->update_seq_num($seq_num); // Update our form data with the new "last seq id." $form['data']['last_sub'] = $seq_num; $args = array('update_array' => array('data' => serialize($form['data'])), 'where' => array('id' => $form_id)); ninja_forms_update_form($args); // Update our sub count Ninja_Forms()->form($form_id)->sub_count = $seq_num - 1; return $sub_id; }
function ninja_forms_check_email_from_name() { $plugin_settings = nf_get_settings(); // Check to see if we've already fixed the setting. if (!isset($plugin_settings['fix_form_email_from']) or $plugin_settings['fix_form_email_from'] != 1) { // Get our forms. $forms = ninja_forms_get_all_forms(); if (is_array($forms)) { foreach ($forms as $form) { // Check to see if we've already added the "from_email_name." if (!isset($form['data']['email_from_name']) and isset($form['data']['email_from'])) { // This field doesn't have an "email_from_name" saved, so we'll run it through the adjustment function. $email_from = ninja_forms_split_email_from($form['data']['email_from']); $form['data']['email_from'] = $email_from['email_from']; $form['data']['email_from_name'] = $email_from['email_from_name']; $args = array('update_array' => array('data' => serialize($form['data'])), 'where' => array('id' => $form['id'])); ninja_forms_update_form($args); } } } $plugin_settings['fix_form_email_from'] = 1; update_option('ninja_forms_settings', $plugin_settings); } }
public function step($step) { global $ninja_forms_fields; // Get our form ID $form_id = $this->args['forms'][$step]; // Bail if we've already converted the notifications for this form. if (in_array($form_id, $this->completed_forms)) { return false; } // Grab our form from the database $form_settings = Ninja_Forms()->form($form_id)->settings; $fields = Ninja_Forms()->form($form_id)->fields; $process_fields = array(); foreach ($fields as $field_id => $field) { $label = strip_tags(nf_get_field_admin_label($field_id)); if (strlen($label) > 30) { $tmp_label = substr($label, 0, 30); } else { $tmp_label = $label; } $tmp_array = array('value' => $field_id, 'label' => $tmp_label . ' - ID: ' . $field_id); $admin_label = $label; $label = isset($field['data']['label']) ? $field['data']['label'] : ''; // Check to see if this field is supposed to be "processed" $type = $field['type']; if (isset($ninja_forms_fields[$type]['process_field']) && $ninja_forms_fields[$type]['process_field']) { $process_fields[$field_id] = array('field_id' => $field_id, 'label' => $label, 'admin_label' => $admin_label); } } // Create a notification for our admin email if (isset($form_settings['admin_email_msg']) && !empty($form_settings['admin_email_msg']) || isset($form_settings['admin_email_fields']) && 1 == $form_settings['admin_email_fields']) { // Create a notification $n_id = nf_insert_notification($form_id); // Update our notification type nf_update_object_meta($n_id, 'type', 'email'); // Activate our notification Ninja_Forms()->notification($n_id)->activate(); // Update our notification name Ninja_Forms()->notification($n_id)->update_setting('name', __('Admin Email', 'ninja-forms')); $admin_mailto = isset($form_settings['admin_mailto']) ? $form_settings['admin_mailto'] : array(); // Implode our admin email addresses $to = implode('`', $admin_mailto); // Update our to setting Ninja_Forms()->notification($n_id)->update_setting('to', $to); // Update our Format Setting Ninja_Forms()->notification($n_id)->update_setting('email_format', $form_settings['email_type']); // Update our attach csv option Ninja_Forms()->notification($n_id)->update_setting('attach_csv', $form_settings['admin_attach_csv']); // Update our subject $subject = $this->replace_shortcodes($form_settings['admin_subject']); Ninja_Forms()->notification($n_id)->update_setting('email_subject', $subject); // Update our From Name if (isset($form_settings['email_from_name'])) { Ninja_Forms()->notification($n_id)->update_setting('from_name', $form_settings['email_from_name']); } foreach ($fields as $field) { if (isset($field['data']['from_name']) && $field['data']['from_name'] == 1) { // Update our From Name Ninja_Forms()->notification($n_id)->update_setting('from_name', 'field_' . $field['id']); break; } } // Update our From Address Ninja_Forms()->notification($n_id)->update_setting('from_address', $form_settings['email_from']); // Get our reply-to address foreach ($fields as $field) { if (isset($field['data']['replyto_email']) && $field['data']['replyto_email'] == 1) { Ninja_Forms()->notification($n_id)->update_setting('reply_to', 'field_' . $field['id']); break; } } $email_message = $form_settings['admin_email_msg']; // Check to see if the "include list of fields" checkbox was checked. if (isset($form_settings['admin_email_fields']) && $form_settings['admin_email_fields'] == 1) { $email_message .= '<br />[ninja_forms_all_fields]'; } // Update our email message Ninja_Forms()->notification($n_id)->update_setting('email_message', $email_message); Ninja_Forms()->notification($n_id)->update_setting('admin_email', true); } // Create a notification for our user email if (!empty($fields)) { $addresses = array(); foreach ($fields as $field_id => $field) { if (isset($field['data']['send_email']) && $field['data']['send_email'] == 1) { // Add this field to our $addresses variable. $addresses[] = 'field_' . $field_id; unset($field['data']['send_email']); unset($field['data']['replyto_email']); unset($field['data']['from_name']); $args = array('update_array' => array('data' => serialize($field['data'])), 'where' => array('id' => $field_id)); ninja_forms_update_field($args); } } if (!empty($addresses)) { // We have a user email, so create a notification $n_id = nf_insert_notification($form_id); // Update our notification type nf_update_object_meta($n_id, 'type', 'email'); // Activate our notification Ninja_Forms()->notification($n_id)->activate(); // Update our notification name Ninja_Forms()->notification($n_id)->update_setting('name', __('User Email', 'ninja-forms')); // Implode our admin email addresses $n_var = count($addresses) > 1 ? 'bcc' : 'to'; $addresses = implode('`', $addresses); Ninja_Forms()->notification($n_id)->update_setting($n_var, $addresses); // Update our Format Setting Ninja_Forms()->notification($n_id)->update_setting('email_format', $form_settings['email_type']); // Update our subject $subject = $this->replace_shortcodes($form_settings['user_subject']); Ninja_Forms()->notification($n_id)->update_setting('email_subject', $subject); // Update our From Name if (isset($form_settings['email_from_name'])) { Ninja_Forms()->notification($n_id)->update_setting('from_name', $form_settings['email_from_name']); } // Update our From Address Ninja_Forms()->notification($n_id)->update_setting('from_address', $form_settings['email_from']); $email_message = $form_settings['user_email_msg']; // Check to see if the "include list of fields" checkbox was checked. If so, add our table to the end of the email message. if (isset($form_settings['user_email_fields']) && $form_settings['user_email_fields'] == 1) { $email_message .= '<br />[ninja_forms_all_fields]'; } // Update our email message Ninja_Forms()->notification($n_id)->update_setting('email_message', $email_message); Ninja_Forms()->notification($n_id)->update_setting('user_email', true); } } if (isset($form_settings['success_msg']) && !empty($form_settings['success_msg'])) { // Create a notification for our success message $n_id = nf_insert_notification($form_id); nf_update_object_meta($n_id, 'name', __('Success Message', 'ninja-forms')); nf_update_object_meta($n_id, 'type', 'success_message'); nf_update_object_meta($n_id, 'active', 1); nf_update_object_meta($n_id, 'success_msg', $form_settings['success_msg']); } if (isset($form_settings['landing_page']) && !empty($form_settings['landing_page'])) { // Create a notification for our redirect $n_id = nf_insert_notification($form_id); nf_update_object_meta($n_id, 'name', __('Redirect', 'ninja-forms')); nf_update_object_meta($n_id, 'type', 'redirect'); nf_update_object_meta($n_id, 'active', 1); nf_update_object_meta($n_id, 'redirect_url', $form_settings['landing_page']); } $completed_forms = get_option('nf_convert_notifications_forms'); if (!is_array($completed_forms) || empty($completed_forms)) { $completed_forms = array($form_id); } else { $completed_forms[] = $form_id; } update_option('nf_convert_notifications_forms', $completed_forms); // Unset our admin email settings and save the form. if (isset($form_settings['admin_mailto'])) { unset($form_settings['admin_mailto']); unset($form_settings['admin_attach_csv']); unset($form_settings['admin_subject']); unset($form_settings['admin_email_msg']); unset($form_settings['admin_email_fields']); unset($form_settings['success_msg']); unset($form_settings['user_email_msg']); unset($form_settings['user_subject']); unset($form_settings['landing_page']); $args = array('update_array' => array('data' => serialize($form_settings)), 'where' => array('id' => $form_id)); ninja_forms_update_form($args); } }
/** * Removes old email settings form a single form. * * @since 2.8.4 * @return void */ function nf_remove_old_email_send_to( $form_id ) { if ( empty ( $form_id ) ) return false; // Remove any "Admin mailto" settings we might have. $form_row = ninja_forms_get_form_by_id( $form_id ); if ( isset ( $form_row['data']['admin_mailto'] ) ) { unset ( $form_row['data']['admin_mailto'] ); $args = array( 'update_array' => array( 'data' => serialize( $form_row['data'] ), ), 'where' => array( 'id' => $form_id, ), ); ninja_forms_update_form( $args ); } // Update any old email settings we have. $fields = Ninja_Forms()->form( $form_id )->fields; // Create a notification for our user email if ( ! empty ( $fields ) ) { foreach ( $fields as $field_id => $field ) { if ( isset ( $field['data']['send_email'] ) && $field['data']['send_email'] == 1 ) { // Add this field to our $addresses variable. unset( $field['data']['send_email'] ); unset( $field['data']['replyto_email'] ); unset( $field['data']['from_name'] ); $args = array( 'update_array' => array( 'data' => serialize( $field['data'] ), ), 'where' => array( 'id' => $field_id, ), ); ninja_forms_update_field( $args ); } } } }
function ninja_forms_calc_after_import_form($form) { global $wpdb; if (is_array($form['field']) and !empty($form['field'])) { $field_rows = ninja_forms_get_fields_by_form_id($form['id']); if (is_array($field_rows) and !empty($field_rows)) { for ($y = 0; $y < count($field_rows); $y++) { if (isset($field_rows[$y]['data']['calc']) and is_array($field_rows[$y]['data']['calc'])) { for ($i = 0; $i < count($field_rows[$y]['data']['calc']); $i++) { foreach ($form['field'] as $inserted_field) { if (isset($field_rows[$y]['data']['calc'][$i]['field']) and $inserted_field['old_id'] == $field_rows[$y]['data']['calc'][$i]['field']) { $field_rows[$y]['data']['calc'][$i]['field'] = $inserted_field['id']; } } } } if (isset($field_rows[$y]['data']['calc_eq']) and $field_rows[$y]['data']['calc_eq'] != '') { $calc_eq = $field_rows[$y]['data']['calc_eq']; foreach ($form['field'] as $inserted_field) { $calc_eq = str_replace('field_' . $inserted_field['old_id'], 'field_' . $inserted_field['id'], $calc_eq); } $field_rows[$y]['data']['calc_eq'] = $calc_eq; } $field_rows[$y]['data'] = serialize($field_rows[$y]['data']); $args = array('update_array' => array('data' => $field_rows[$y]['data']), 'where' => array('id' => $field_rows[$y]['id'])); ninja_forms_update_field($args); } if (isset($form['data']['success_msg']) and $form['data']['success_msg'] != '') { $success_msg = $form['data']['success_msg']; foreach ($form['field'] as $inserted_field) { $success_msg = str_replace('[ninja_forms_field id=' . $inserted_field['old_id'] . ']', '[ninja_forms_field id=' . $inserted_field['id'] . ']', $success_msg); } $form['data']['success_msg'] = $success_msg; } if (isset($form['data']['user_subject']) and $form['data']['user_subject'] != '') { $user_subject = $form['data']['user_subject']; foreach ($form['field'] as $inserted_field) { $user_subject = str_replace('[ninja_forms_field id=' . $inserted_field['old_id'] . ']', '[ninja_forms_field id=' . $inserted_field['id'] . ']', $user_subject); } $form['data']['user_subject'] = $user_subject; } if (isset($form['data']['user_email_msg']) and $form['data']['user_email_msg'] != '') { $user_email_msg = $form['data']['user_email_msg']; foreach ($form['field'] as $inserted_field) { $user_email_msg = str_replace('[ninja_forms_field id=' . $inserted_field['old_id'] . ']', '[ninja_forms_field id=' . $inserted_field['id'] . ']', $user_email_msg); } $form['data']['user_email_msg'] = $user_email_msg; } if (isset($form['data']['admin_subject']) and $form['data']['admin_subject'] != '') { $admin_subject = $form['data']['admin_subject']; foreach ($form['field'] as $inserted_field) { $admin_subject = str_replace('[ninja_forms_field id=' . $inserted_field['old_id'] . ']', '[ninja_forms_field id=' . $inserted_field['id'] . ']', $admin_subject); } $form['data']['admin_subject'] = $admin_subject; } if (isset($form['data']['admin_email_msg']) and $form['data']['admin_email_msg'] != '') { $admin_email_msg = $form['data']['admin_email_msg']; foreach ($form['field'] as $inserted_field) { $admin_email_msg = str_replace('[ninja_forms_field id=' . $inserted_field['old_id'] . ']', '[ninja_forms_field id=' . $inserted_field['id'] . ']', $admin_email_msg); } $form['data']['admin_email_msg'] = $admin_email_msg; } if (isset($form['data']['mp_confirm_msg']) and $form['data']['mp_confirm_msg'] != '') { $mp_confirm_msg = $form['data']['mp_confirm_msg']; foreach ($form['field'] as $inserted_field) { $mp_confirm_msg = str_replace('[ninja_forms_field id=' . $inserted_field['old_id'] . ']', '[ninja_forms_field id=' . $inserted_field['id'] . ']', $mp_confirm_msg); } $form['data']['mp_confirm_msg'] = $mp_confirm_msg; } if (isset($form['data']['save_msg']) and $form['data']['save_msg'] != '') { $save_msg = $form['data']['save_msg']; foreach ($form['field'] as $inserted_field) { $save_msg = str_replace('[ninja_forms_field id=' . $inserted_field['old_id'] . ']', '[ninja_forms_field id=' . $inserted_field['id'] . ']', $save_msg); } $form['data']['save_msg'] = $save_msg; } if (isset($form['data']['save_email_msg']) and $form['data']['save_email_msg'] != '') { $save_email_msg = $form['data']['save_email_msg']; foreach ($form['field'] as $inserted_field) { $save_email_msg = str_replace('[ninja_forms_field id=' . $inserted_field['old_id'] . ']', '[ninja_forms_field id=' . $inserted_field['id'] . ']', $save_email_msg); } $form['data']['save_email_msg'] = $save_email_msg; } $args = array('update_array' => array('data' => serialize($form['data'])), 'where' => array('id' => $form['id'])); ninja_forms_update_form($args); } } }