function ninja_forms_mp_get_pages($form_id = '') { global $ninja_forms_loading, $ninja_forms_processing; $field_results = ninja_forms_get_fields_by_form_id($form_id); $pages = array(); $x = 0; $y = 0; $last_field = ''; foreach ($field_results as $field) { if ($field['type'] == '_page_divider') { $x++; $y = 0; $pages[$x]['id'] = $field['id']; $pages[$x]['page_title'] = $field['data']['page_name']; } else { if ($y == 0) { $pages[$x]['first_field'] = $field['id']; $y++; } } $pages[$x]['fields'][] = $field['id']; if (isset($ninja_forms_loading)) { $ninja_forms_loading->update_field_setting($field['id'], 'page', $x); } else { $ninja_forms_processing->update_field_setting($field['id'], 'page', $x); } } foreach ($pages as $num => $vars) { $last_field = end($vars['fields']); $pages[$num]['last_field'] = $last_field; } return $pages; }
function ninja_forms_register_feditor_sub_settings_metabox() { $all_roles = get_editable_roles(); $tmp_array = array(); if (is_array($all_roles) and !empty($all_roles)) { foreach ($all_roles as $key => $role) { $tmp_array[] = array('name' => $role['name'], 'value' => $key); } } $all_roles = $tmp_array; $edit_table_cols = array(); if (isset($_REQUEST['form_id'])) { $form_id = $_REQUEST['form_id']; $fields = ninja_forms_get_fields_by_form_id($form_id); foreach ($fields as $field) { if (isset($field['data']['label'])) { $edit_table_cols[] = array('name' => $field['data']['label'], 'value' => $field['id']); } else { $edit_table_cols[] = array('name' => 'Field ID: ' . $field['id'], 'value' => $field['id']); } } } else { } $args = array('page' => 'ninja-forms', 'tab' => 'form_settings', 'slug' => 'sub_settings', 'title' => __('Submission management settings', 'ninja-forms-feditor'), 'display_function' => '', 'state' => 'closed', 'settings' => array(array('name' => 'manage_sub', 'type' => 'checkbox', 'label' => __('Enable front-end submission management', 'ninja-forms-feditor'), 'default_value' => 1), array('name' => 'manage_sub_table', 'type' => 'checkbox', 'label' => __('Show submission management table above this form?', 'ninja-forms-feditor'), 'default_value' => 1), array('name' => 'manage_sub_table_cols', 'type' => 'multi_select', 'label' => __('Use these fields as table columns', 'ninja-forms-feditor'), 'options' => $edit_table_cols, 'size' => 10, 'desc' => __('Use CTRL + click to select multiple fields (COMMAND + click for Mac users). The number of field columns you want will depend upon the size of your field labels and values. Three is a good, standard value.', 'ninja-forms-feditor')), array('name' => 'manage_sub_hide_form', 'type' => 'checkbox', 'label' => __('Hide this form when a user has submissions to manage', 'ninja-forms-feditor')), array('name' => 'override_sub_rules', 'type' => 'checkbox', 'label' => __('Override rules settings', 'ninja-forms-feditor')), array('name' => '', 'type' => '', 'label' => '', 'display_function' => 'ninja_forms_feditor_sub_settings_user_list'), array('name' => 'manage_sub_roles', 'type' => 'checkbox_list', 'select_all' => false, 'options' => $all_roles, 'label' => __('Allow these roles', 'ninja-forms')), array('name' => 'edit_sub', 'type' => 'checkbox', 'label' => __('To Edit Submissions', 'ninja-forms-feditor')), array('name' => 'delete_sub', 'type' => 'checkbox', 'label' => __('To Delete Submissions', 'ninja-forms-feditor')))); if (function_exists('ninja_forms_register_tab_metabox')) { ninja_forms_register_tab_metabox($args); } }
function ninja_forms_upload_display_js($form_id) { if (!is_admin()) { $fields = ninja_forms_get_fields_by_form_id($form_id); $output = false; $multi = false; foreach ($fields as $field) { if ($field['type'] == '_upload') { if (!$output) { $output = true; } if (!$multi && isset($field['data']['upload_multi']) && $field['data']['upload_multi'] == 1) { $multi = true; } } } if ($output) { if (defined('NINJA_FORMS_JS_DEBUG') && NINJA_FORMS_JS_DEBUG) { $suffix = ''; $src = 'dev'; } else { $suffix = '.min'; $src = 'min'; } wp_enqueue_script('ninja-forms-uploads-display', NINJA_FORMS_UPLOADS_URL . '/js/' . $src . '/ninja-forms-uploads-display' . $suffix . '.js', array('jquery', 'ninja-forms-display')); if ($multi) { wp_enqueue_script('jquery-multi-file', NINJA_FORMS_UPLOADS_URL . '/js/min/jquery.MultiFile.pack.js', array('jquery')); wp_localize_script('ninja-forms-uploads-display', 'ninja_forms_uploads_settings', array('delete' => __('Really delete this item?', 'ninja-forms-uploads'))); } } } }
function ninja_forms_conditionals_field_class_filter($form_id) { global $ninja_forms_loading, $ninja_forms_processing; $field_results = ninja_forms_get_fields_by_form_id($form_id); foreach ($field_results as $field) { if (isset($field['data']['conditional'])) { $conditional = $field['data']['conditional']; } else { $conditional = ''; } if (isset($conditional) and is_array($conditional)) { foreach ($conditional as $conditional) { if (isset($conditional['cr']) and is_array($conditional['cr'])) { foreach ($conditional['cr'] as $cr) { if (isset($ninja_forms_loading)) { $cr_field_class = $ninja_forms_loading->get_field_setting($cr['field'], 'field_class'); } else { $cr_field_class = $ninja_forms_processing->get_field_setting($cr['field'], 'field_class'); } if (strpos($cr_field_class, 'ninja-forms-field-conditional-listen') === false) { $cr_field_class .= ' ninja-forms-field-conditional-listen '; } if (isset($ninja_forms_loading)) { $ninja_forms_loading->update_field_setting($cr['field'], 'field_class', $cr_field_class); } else { $ninja_forms_processing->update_field_setting($cr['field'], 'field_class', $cr_field_class); } } } } } } }
function ninja_forms_mp_save_form($form_id, $data) { $form_row = ninja_forms_get_form_by_id($form_id); $form_data = $form_row['data']; if (isset($form_data['multi_part'])) { $multi_part = $form_data['multi_part']; } else { $multi_part = 0; } if ($data['multi_part'] == 0 and $multi_part == 1) { $all_fields = ninja_forms_get_fields_by_form_id($form_id); if (is_array($all_fields) and !empty($all_fields)) { foreach ($all_fields as $field) { if ($field['type'] == '_page_divider') { ninja_forms_delete_field($field['id']); } } } } else { if ($data['multi_part'] == 1 and $multi_part == 0) { $args = array('type' => '_page_divider', 'order' => -1); ninja_forms_insert_field($form_id, $args); } } }
function ninja_forms_display_req_items($form_id) { $plugin_settings = get_option('ninja_forms_settings'); if (isset($plugin_settings['req_div_label'])) { $req_div_label = __($plugin_settings['req_div_label'], 'ninja-forms'); } else { $req_div_label = __('Fields marked with a * are required.', 'ninja-forms'); } $all_fields = ninja_forms_get_fields_by_form_id($form_id); $output = false; if (is_array($all_fields) and !empty($all_fields)) { foreach ($all_fields as $field) { if (isset($field['data']['req']) and $field['data']['req'] == 1) { $output = true; } } } if ($output) { ?> <div class="ninja-forms-required-items"><?php echo $req_div_label; ?> </div> <?php } }
/** * Process * * @param string $id * @return void */ public function process($id) { global $ninja_forms_processing; $form_id = $ninja_forms_processing->get_form_ID(); $form_title = $ninja_forms_processing->get_form_setting('form_title'); $all_fields = ninja_forms_get_fields_by_form_id($form_id); $total = ''; // Get IDs of fields that are to be sent to PayPal $accepted_fields = $PayPalEmail = Ninja_Forms()->notification($id)->get_setting('accepted_fields'); $accepted_ary = explode(',', $accepted_fields); if (is_array($all_fields)) { foreach ($all_fields as $field) { $value = $ninja_forms_processing->get_field_value($field['id']); if (in_array($field['id'], $accepted_ary)) { $total += $value; } } } // Grab PayPal email from NF setting $paypal_email = Ninja_Forms()->notification($id)->get_setting('paypal_email'); // Format PayPal URL $url = 'https://www.paypal.com/us/cgi-bin/webscr?cmd=_xclick &business=' . urlencode($paypal_email) . ' &item_name=' . urlencode($form_title) . ' &item_number= &amount=' . $total . ' &no_shipping=1 &return=' . site_url() . ' ¤cy_code=USD&lc=US&bn=PP-BuyNowBF'; // Do the redirection to PayPal wp_redirect($url); exit; }
function ninja_forms_fields_post_process() { global $ninja_forms_fields, $ninja_forms_processing; //Loop through the submitted form data and call each field's post_processing function, if one exists. $form_id = $ninja_forms_processing->get_form_ID(); $field_results = ninja_forms_get_fields_by_form_id($form_id); if (is_array($field_results) and !empty($field_results)) { foreach ($field_results as $field) { $field_id = $field['id']; $field_type = $field['type']; $field_data = $field['data']; if (isset($ninja_forms_fields[$field_type])) { $reg_field = $ninja_forms_fields[$field_type]; //if( $reg_field['process_field'] ){ $post_process_function = $reg_field['post_process']; if ($post_process_function != '') { $arguments = array(); $arguments['field_id'] = $field_id; $user_value = $ninja_forms_processing->get_field_value($field_id); $user_value = apply_filters('ninja_forms_field_post_process_user_value', $user_value, $field_id); $arguments['user_value'] = $user_value; call_user_func_array($post_process_function, $arguments); } //} } } } }
function ninja_forms_fields_edit_sub_post_process() { global $ninja_forms_fields, $ninja_forms_processing; $form_id = $ninja_forms_processing->get_form_ID(); $field_results = ninja_forms_get_fields_by_form_id($form_id); if (is_array($field_results) and !empty($field_results)) { foreach ($field_results as $field) { $field_id = $field['id']; $field_type = $field['type']; $field_data = $field['data']; if (isset($ninja_forms_fields[$field_type])) { $reg_field = $ninja_forms_fields[$field_type]; if ($reg_field['process_field']) { $post_process_function = $reg_field['edit_sub_post_process']; if ($post_process_function != '') { $arguments = array(); $arguments['field_id'] = $field_id; $user_value = $ninja_forms_processing->get_field_value($field_id); $user_value = apply_filters('ninja_forms_field_edit_sub_post_process_user_value', $user_value, $field_id); $arguments['user_value'] = $user_value; call_user_func_array($post_process_function, $arguments); } } } } } }
function ninja_forms_conditionals_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']['conditional']) and is_array($field_rows[$y]['data']['conditional'])) { for ($i = 0; $i < count($field_rows[$y]['data']['conditional']); $i++) { if (isset($field_rows[$y]['data']['conditional'][$i]['cr']) and is_array($field_rows[$y]['data']['conditional'][$i]['cr'])) { for ($n = 0; $n < count($field_rows[$y]['data']['conditional'][$i]['cr']); $n++) { foreach ($form['field'] as $inserted_field) { if ($inserted_field['old_id'] == $field_rows[$y]['data']['conditional'][$i]['cr'][$n]['field']) { $field_rows[$y]['data']['conditional'][$i]['cr'][$n]['field'] = $inserted_field['id']; } } } } } } $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); } } } }
function ninja_forms_upload_display_js($form_id) { if (!is_admin()) { $fields = ninja_forms_get_fields_by_form_id($form_id); $output = false; $multi = false; foreach ($fields as $field) { if ($field['type'] == '_upload') { if (!$output) { $output = true; } if (!$multi and $field['data']['upload_multi'] == 1) { $multi = true; } } } if ($output) { wp_enqueue_script('ninja-forms-uploads-display', NINJA_FORMS_UPLOADS_URL . '/js/min/ninja-forms-uploads-display.min.js', array('jquery', 'ninja-forms-display')); if ($multi) { wp_enqueue_script('jquery-multi-file', NINJA_FORMS_UPLOADS_URL . '/js/min/jquery.MultiFile.pack.js', array('jquery')); wp_localize_script('ninja-forms-uploads-display', 'ninja_forms_uploads_settings', array('delete' => __('Really delete this item?', 'ninja-forms-uploads'))); } } } }
function ninja_forms_edit_field_output_ul($form_id) { $fields = ninja_forms_get_fields_by_form_id($form_id); ?> <div id="ninja-forms-viewport"> <input class="button-primary menu-save nf-save-admin-fields" id="ninja_forms_save_data_top" type="button" value="<?php _e('Save', 'ninja-forms'); ?> " /> <a href="#" class="button-secondary nf-save-spinner" style="display:none;" disabled><span class="spinner nf-save-spinner" style="float:left;"></span></a> <ul class="menu ninja-forms-field-list" id="ninja_forms_field_list"> <?php if (is_array($fields) and !empty($fields)) { foreach ($fields as $field) { ninja_forms_edit_field($field['id']); } } ?> </ul> <input class="button-primary menu-save nf-save-admin-fields" id="ninja_forms_save_data_bot" type="button" value="<?php _e('Save', 'ninja-forms'); ?> " /> <a href="#" class="button-secondary nf-save-spinner" style="display:none;" disabled><span class="spinner nf-save-spinner" style="float:left;"></span></a> </div> <?php }
function ld_ninja_form_get_fields_by_form_id($form_id) { $return = array(); if (function_exists('ninja_forms_get_fields_by_form_id')) { $all_fields = ninja_forms_get_fields_by_form_id($form_id); if (!empty($all_fields)) { foreach ($all_fields as $field) { if ($field['type'] !== '_submit') { $return[] = array('label' => $field['data']['label'] . ' (' . $field['id'] . ')', 'value' => $field['id']); } } } } return $return; }
/** * Load our scripts */ function load_scripts($form_id) { // first let's get all of the fields on the page $all_fields = ninja_forms_get_fields_by_form_id($form_id); // determine if one this plugin's fields are present $nfuaFields = array("ip_address", "browser", "browser_version", "os", "country", "region", "postal_code", "city", "latitude", "longitude"); $nfuaFieldPresent = false; foreach ($all_fields as $key => $value) { if (isset($value['type']) && in_array($value['type'], $nfuaFields)) { $nfuaFieldPresent = true; } } // if one of our fields is present in the form then print out the scripts if ($nfuaFieldPresent) { // load geolocation script wp_enqueue_script('maxmind_geoip', "http://j.maxmind.com/app/geoip.js"); // load main script wp_enqueue_script('nf-user-analytics', plugins_url('assets/scripts/script.js', __FILE__), array('jquery'), "0.1.0", true); } }
function ninja_forms_edit_field_output_mp_ul($form_id) { $all_fields = ninja_forms_get_fields_by_form_id($form_id); if (is_array($all_fields) and !empty($all_fields)) { $pages = array(); $this_page = array(); $x = 0; foreach ($all_fields as $field) { if ($field['type'] == '_page_divider') { $x++; } $pages[$x][] = $field['id']; } if (isset($_REQUEST['current_page'])) { $current_page = $_REQUEST['current_page']; } else { $current_page = 1; } if (is_array($pages) and !empty($pages)) { foreach ($pages as $page => $fields) { ?> <ul class="menu ninja-forms-field-list" id="ninja_forms_field_list_<?php echo $page; ?> " data-order="<?php echo $page; ?> "> <?php if (is_array($fields) and !empty($fields)) { foreach ($fields as $field_id) { ninja_forms_edit_field($field_id); } } ?> </ul> <?php } } } }
function ninja_forms_edit_field_output_ul($form_id) { $fields = ninja_forms_get_fields_by_form_id($form_id); ?> <div id="ninja-forms-viewport"> <input class="button-primary menu-save ninja-forms-save-data" id="ninja_forms_save_data_top" type="submit" value="<?php _e('Save Field Settings', 'ninja-forms'); ?> " /> <ul class="menu ninja-forms-field-list" id="ninja_forms_field_list"> <?php if (is_array($fields) and !empty($fields)) { foreach ($fields as $field) { ninja_forms_edit_field($field['id']); } } ?> </ul> </div> <?php }
/** * Function to output specific calculation options for a given field * * @param int $field_id - ID of the field being edited. * @param array $c - Array containing the data. * @param int $x - Index for this row of the calc array. * @since 2.2.28 * @returns void */ function ninja_forms_output_field_calc_row($field_id, $c = array(), $x = 0) { global $ninja_forms_fields; $field_row = ninja_forms_get_field_by_id($field_id); $field_type = $field_row['type']; $form_id = $field_row['form_id']; if (isset($c['field'])) { $calc_field = $c['field']; } else { $calc_field = ''; } if (isset($c['op'])) { $op = $c['op']; } else { $op = ''; } ?> <div id="ninja_forms_field_<?php echo $field_id; ?> _calc_row_<?php echo $x; ?> " class="ninja-forms-calc-row" rel="<?php echo $x; ?> "> <a href="#" id="ninja_forms_field_<?php echo $field_id; ?> _remove_calc" name="<?php echo $x; ?> " rel="<?php echo $field_id; ?> " class="ninja-forms-field-remove-calc">X</a> <select name="ninja_forms_field_<?php echo $field_id; ?> [calc][<?php echo $x; ?> ][op]"> <option value="add" <?php selected($op, 'add'); ?> >+</option> <option value="subtract" <?php selected($op, 'subtract'); ?> >-</option> <option value="multiply" <?php selected($op, 'multiply'); ?> >*</option> <option value="divide" <?php selected($op, 'divide'); ?> >/</option> </select> <select name="ninja_forms_field_<?php echo $field_id; ?> [calc][<?php echo $x; ?> ][field]" class="ninja-forms-calc-select"> <option value=""><?php _e('- Select a Field', 'ninja-forms'); ?> </option> <?php // Loop through our fields and output all of our calculation fields. $fields = ninja_forms_get_fields_by_form_id($form_id); foreach ($fields as $field) { if (isset($field['data']['label'])) { $label = $field['data']['label']; } else { $label = ''; } if (strlen($label) > 15) { $label = substr($label, 0, 15); $label .= '...'; } $process_field = $ninja_forms_fields[$field['type']]['process_field']; if ($field['id'] != $field_id and $process_field) { ?> <option value="<?php echo $field['id']; ?> " <?php selected($calc_field, $field['id']); ?> ><?php echo $field['id']; ?> - <?php echo $label; ?> </option> <?php } } ?> </select> </div> <?php }
function ninja_forms_display_js($form_id, $local_vars = '') { global $post, $ninja_forms_display_localize_js, $wp_locale, $ninja_forms_loading, $ninja_forms_processing; if (defined('NINJA_FORMS_JS_DEBUG') && NINJA_FORMS_JS_DEBUG) { $suffix = ''; $src = 'dev'; } else { $suffix = '.min'; $src = 'min'; } // Get all of our form fields to see if we need to include the datepicker and/or jqueryUI $datepicker = 0; $qtip = 0; $mask = 0; $currency = 0; $input_limit = 0; $rating = 0; $calc_value = array(); $calc_fields = array(); $calc_eq = false; $sub_total = false; $tax = false; $fields = ninja_forms_get_fields_by_form_id($form_id); if (is_array($fields) and !empty($fields)) { foreach ($fields as $field) { if (isset($field['id'])) { $field_id = $field['id']; } else { $field_id = ''; } if (isset($field['type'])) { $field_type = $field['type']; } else { $field_type = ''; } $field['data'] = apply_filters('ninja_forms_display_script_field_data', $field['data'], $field_id); if (isset($field['data']['datepicker']) and $field['data']['datepicker'] == 1) { $datepicker = 1; } if (isset($field['data']['show_help']) and $field['data']['show_help'] == 1) { $qtip = 1; } if (isset($field['data']['mask']) and $field['data']['mask'] != '') { $mask = 1; } if (isset($field['data']['mask']) and $field['data']['mask'] == 'currency') { $currency = 1; } if (isset($field['data']['input_limit']) and $field['data']['input_limit'] != '') { $input_limit = $field['data']['input_limit']; $input_limit_type = $field['data']['input_limit_type']; } if ($field_type == '_rating') { $rating = 1; } // Populate an array of calculation values for the form fields. // Check to see if this field has a calc_value. If it does, add this to our calc_value array so that we can tell what it is in our JS. if (isset($field['data']['calc_value'])) { $calc_value[$field_id] = $field['data']['calc_value']; } else { if ($field_type == '_list') { // Get a list of options and their 'calc' setting. if (isset($field['data']['list']['options']) and is_array($field['data']['list']['options'])) { $list_options = $field['data']['list']['options']; foreach ($list_options as $option) { if (isset($field['data']['list_show_value']) and $field['data']['list_show_value'] == 1) { $key = $option['value']; } else { $key = $option['label']; } if (!isset($option['calc']) or isset($option['calc']) and empty($option['calc'])) { $option['calc'] = 0; } $calc_value[$field_id][$key] = $option['calc']; } } } } // Check to see if this is a tax field; if ($field_type == '_tax') { $tax = $field_id; } // Check to see if this is a calculation field. If it is, store it in our calc_fields array along with its method. if ($field_type == '_calc') { if (isset($field['data']['calc_method'])) { $calc_method = $field['data']['calc_method']; } else { $calc_method = 'auto'; } // Check to see if this is a sub_total calculation if (isset($field['data']['payment_sub_total']) and $field['data']['payment_sub_total'] == 1) { $sub_total = $field_id; } switch ($calc_method) { case 'auto': $calc_fields[$field_id] = array('method' => 'auto'); break; case 'fields': $field_ops = $field['data']['calc']; $calc_fields[$field_id] = array('method' => 'fields', 'fields' => $field_ops); break; case 'eq': $calc_fields[$field_id] = array('method' => 'eq', 'eq' => $field['data']['calc_eq']); $calc_eq = true; break; } $calc_fields[$field_id]['places'] = $field['data']['calc_places']; } } // Loop through our fields again looking for calc fields that are totals. foreach ($fields as $field) { if (isset($field['id'])) { $field_id = $field['id']; } else { $field_id = ''; } if (isset($field['type'])) { $field_type = $field['type']; } else { $field_type = ''; } if ($field_type == '_calc') { if (isset($field['data']['payment_total']) and $field['data']['payment_total'] == 1) { if ($sub_total and $tax and $field['data']['calc_method'] == 'auto') { $calc_fields[$field_id]['method'] = 'eq'; $calc_fields[$field_id]['eq'] = 'field_' . $sub_total . ' + ( field_' . $sub_total . ' * field_' . $tax . ' )'; $calc_eq = true; } } } } } // Loop through our fields once more to add them to our calculation field with the method of 'eq'. if ($calc_eq) { foreach ($calc_fields as $calc_id => $calc) { if ($calc['method'] == 'eq') { foreach ($fields as $field) { $field_id = $field['id']; if (preg_match("/\\bfield_" . $field_id . "\\b/i", $calc['eq'])) { $calc_fields[$calc_id]['fields'][] = $field_id; } } } } } if ($datepicker == 1) { wp_enqueue_script('jquery-ui-datepicker'); } if ($qtip == 1) { wp_enqueue_script('jquery-qtip', NINJA_FORMS_URL . 'js/min/jquery.qtip.min.js', array('jquery', 'jquery-ui-position')); } if ($mask == 1) { wp_enqueue_script('jquery-maskedinput', NINJA_FORMS_URL . 'js/min/jquery.maskedinput.min.js', array('jquery')); } if ($currency == 1) { wp_enqueue_script('jquery-autonumeric', NINJA_FORMS_URL . 'js/min/autoNumeric.min.js', array('jquery')); } if ($input_limit != 0) { wp_enqueue_script('jquery-char-input-limit', NINJA_FORMS_URL . 'js/min/word-and-character-counter.min.js', array('jquery')); } if ($rating == 1) { wp_enqueue_script('jquery-rating', NINJA_FORMS_URL . 'js/min/jquery.rating.min.js', array('jquery')); } $form_row = ninja_forms_get_form_by_id($form_id); $form_row = apply_filters('ninja_forms_display_form_form_data', $form_row); if (isset($form_row['data']['ajax'])) { $ajax = $form_row['data']['ajax']; } else { $ajax = 0; } if (isset($form_row['data']['hide_complete'])) { $hide_complete = $form_row['data']['hide_complete']; } else { $hide_complete = 0; } if (isset($form_row['data']['clear_complete'])) { $clear_complete = $form_row['data']['clear_complete']; } else { $clear_complete = 0; } $ninja_forms_js_form_settings['ajax'] = $ajax; $ninja_forms_js_form_settings['hide_complete'] = $hide_complete; $ninja_forms_js_form_settings['clear_complete'] = $clear_complete; $calc_settings['calc_value'] = ''; $calc_settings['calc_fields'] = ''; if (!empty($calc_value)) { $calc_settings['calc_value'] = $calc_value; } $calc_settings['calc_fields'] = $calc_fields; $plugin_settings = nf_get_settings(); if (isset($plugin_settings['date_format'])) { $date_format = $plugin_settings['date_format']; } else { $date_format = 'm/d/Y'; } $date_format = ninja_forms_date_to_datepicker($date_format); $datepicker_args = array(); if (!empty($date_format)) { $datepicker_args['dateFormat'] = $date_format; } $currency_symbol = $plugin_settings['currency_symbol']; $password_mismatch = esc_html(stripslashes($plugin_settings['password_mismatch'])); $msg_format = 'inline'; wp_enqueue_script('ninja-forms-display', NINJA_FORMS_URL . 'js/' . $src . '/ninja-forms-display' . $suffix . '.js?nf_ver=' . NF_PLUGIN_VERSION, array('jquery', 'jquery-form', 'backbone', 'underscore')); if (!isset($ninja_forms_display_localize_js) or !$ninja_forms_display_localize_js) { wp_localize_script('ninja-forms-display', 'ninja_forms_settings', array('ajax_msg_format' => $msg_format, 'password_mismatch' => $password_mismatch, 'plugin_url' => NINJA_FORMS_URL, 'datepicker_args' => apply_filters('ninja_forms_forms_display_datepicker_args', $datepicker_args), 'currency_symbol' => $currency_symbol, 'date_format' => $date_format)); $ninja_forms_display_localize_js = true; } wp_localize_script('ninja-forms-display', 'thousandsSeparator', addslashes($wp_locale->number_format['thousands_sep'])); wp_localize_script('ninja-forms-display', 'decimalPoint', addslashes($wp_locale->number_format['decimal_point'])); wp_localize_script('ninja-forms-display', 'ninja_forms_form_' . $form_id . '_settings', apply_filters('nf_form_js_settings', $ninja_forms_js_form_settings, $form_id)); wp_localize_script('ninja-forms-display', 'ninja_forms_form_' . $form_id . '_calc_settings', $calc_settings); wp_localize_script('ninja-forms-display', 'ninja_forms_password_strength', array('empty' => __('Strength indicator', 'ninja-forms'), 'short' => __('Very weak', 'ninja-forms'), 'bad' => __('Weak', 'ninja-forms'), 'good' => _x('Medium', 'password strength', 'ninja-forms'), 'strong' => __('Strong', 'ninja-forms'), 'mismatch' => __('Mismatch', 'ninja-forms'))); }
function ninja_forms_edit_field_output_li($field_id) { global $wpdb, $ninja_forms_fields, $nf_rte_editors; $field_row = ninja_forms_get_field_by_id($field_id); $current_tab = ninja_forms_get_current_tab(); if (isset($_REQUEST['page'])) { $current_page = esc_html($_REQUEST['page']); } else { $current_page = ''; } $field_type = $field_row['type']; $field_data = $field_row['data']; $plugin_settings = nf_get_settings(); if (isset($ninja_forms_fields[$field_type]['use_li']) and $ninja_forms_fields[$field_type]['use_li']) { if (isset($field_row['fav_id']) and $field_row['fav_id'] != 0) { $fav_id = $field_row['fav_id']; $fav_row = ninja_forms_get_fav_by_id($fav_id); if (empty($fav_row['name'])) { $args = array('update_array' => array('fav_id' => ''), 'where' => array('id' => $field_id)); ninja_forms_update_field($args); $fav_id = ''; } } else { $fav_id = ''; } if (isset($field_row['def_id']) and $field_row['def_id'] != 0) { $def_id = $field_row['def_id']; } else { $def_id = ''; } $form_id = $field_row['form_id']; $field_results = ninja_forms_get_fields_by_form_id($form_id); if (isset($ninja_forms_fields[$field_type])) { $reg_field = $ninja_forms_fields[$field_type]; $type_name = $reg_field['name']; $edit_function = $reg_field['edit_function']; $edit_options = $reg_field['edit_options']; if ($reg_field['nesting']) { $nesting_class = 'ninja-forms-nest'; } else { $nesting_class = 'ninja-forms-no-nest'; } $conditional = $reg_field['conditional']; $type_class = $field_type . '-li'; if ($def_id != 0 and $def_id != '') { $def_row = ninja_forms_get_def_by_id($def_id); if (!empty($def_row['name'])) { $type_name = $def_row['name']; } } if ($fav_id != 0 and $fav_id != '') { $fav_row = ninja_forms_get_fav_by_id($fav_id); if (!empty($fav_row['name'])) { $fav_class = 'ninja-forms-field-remove-fav'; $type_name = $fav_row['name']; } } else { $fav_class = 'ninja-forms-field-add-fav'; } if (isset($field_data['label']) and $field_data['label'] != '') { $li_label = $field_data['label']; } else { $li_label = $type_name; } $li_label = apply_filters('ninja_forms_edit_field_li_label', $li_label, $field_id); $li_label = stripslashes($li_label); $li_label = ninja_forms_esc_html_deep($li_label); if (isset($reg_field) && isset($reg_field['conditional']) && isset($reg_field['conditional']['value']) && isset($reg_field['conditional']['value']['type'])) { $conditional_value_type = $reg_field['conditional']['value']['type']; } else { $conditional_value_type = ''; } ?> <li id="ninja_forms_field_<?php echo $field_id; ?> " class="<?php echo $nesting_class; ?> <?php echo $type_class; ?> "> <input type="hidden" id="ninja_forms_field_<?php echo $field_id; ?> _conditional_value_type" value="<?php echo $conditional_value_type; ?> "> <input type="hidden" id="ninja_forms_field_<?php echo $field_id; ?> _fav_id" name="" class="ninja-forms-field-fav-id" value="<?php echo $fav_id; ?> "> <dl class="menu-item-bar"> <dt class="menu-item-handle" id="ninja_forms_metabox_field_<?php echo $field_id; ?> " > <span class="item-title ninja-forms-field-title" id="ninja_forms_field_<?php echo $field_id; ?> _title"><?php echo $li_label; ?> </span> <span class="item-controls"> <span class="item-type"><?php echo $type_name; ?> </span> <a class="item-edit metabox-item-edit" id="ninja_forms_field_<?php echo $field_id; ?> _toggle" title="<?php _e('Edit Menu Item', 'ninja-forms'); ?> " href="#"><?php _e('Edit Menu Item', 'ninja-forms'); ?> </a> </span> </dt> </dl> <?php $slug = 'field_' . $field_id; if (isset($plugin_settings['metabox_state'][$current_page][$current_tab][$slug])) { $state = $plugin_settings['metabox_state'][$current_page][$current_tab][$slug]; } else { $state = 'display:none;'; } ?> <div class="menu-item-settings type-class inside" id="ninja_forms_field_<?php echo $field_id; ?> _inside" style="<?php echo $state; ?> "> <table id="field-info"><tr><td width="65%"><?php _e('Field ID', 'ninja-forms'); ?> : <strong><?php echo $field_id; ?> </strong></td><!-- <td width="15%"><a href="#" class="ninja-forms-field-add-def" id="ninja_forms_field_<?php echo $field_id; ?> _def" class="ninja-forms-field-add-def">Add Defined</a></td><td width="15%"><a href="#" class="ninja-forms-field-remove-def" id="ninja_forms_field_<?php echo $field_id; ?> _def">Remove Defined</a></td> --> <td width="5%"><a href="#" class="<?php echo $fav_class; ?> " id="ninja_forms_field_<?php echo $field_id; ?> _fav">Star</a></td></tr></table> <?php do_action('ninja_forms_edit_field_before_registered', $field_id); $arguments = func_get_args(); array_shift($arguments); // We need to remove the first arg ($function_name) $arguments['field_id'] = $field_id; $arguments['data'] = $field_data; if ($edit_function != '') { call_user_func_array($edit_function, $arguments); } /** * We need to get a list of all of our RTEs. * If we're submitting via ajax, we'll need to use this list. */ if (!isset($nf_rte_editors)) { $nf_rte_editors = array(); } $editors = new NF_WP_Editor_Ajax(); if (is_array($edit_options) and !empty($edit_options)) { foreach ($edit_options as $opt) { $type = $opt['type']; $label_class = ''; if (isset($opt['label'])) { $label = $opt['label']; } else { $label = ''; } if (isset($opt['name'])) { $name = $opt['name']; } else { $name = ''; } if (isset($opt['width'])) { $width = $opt['width']; } else { $width = ''; } if (isset($opt['options'])) { $options = $opt['options']; } else { $options = ''; } if (isset($opt['class'])) { $class = $opt['class']; } else { $class = ''; } if (isset($opt['default'])) { $default = $opt['default']; } else { $default = ''; } if (isset($opt['desc'])) { $desc = $opt['desc']; } else { $desc = ''; } if (isset($field_data[$name])) { $value = $field_data[$name]; } else { $value = $default; } ninja_forms_edit_field_el_output($field_id, $type, $label, $name, $value, $width, $options, $class, $desc, $label_class); } } do_action('ninja_forms_edit_field_after_registered', $field_id); } } else { if (isset($ninja_forms_fields[$field_type])) { $reg_field = $ninja_forms_fields[$field_type]; $edit_function = $reg_field['edit_function']; $arguments = func_get_args(); array_shift($arguments); // We need to remove the first arg ($function_name) $arguments['field_id'] = $field_id; $arguments['data'] = $field_data; if ($edit_function != '') { call_user_func_array($edit_function, $arguments); } } } /** * We need to get a list of all of our RTEs. * If we're submitting via ajax, we'll need to use this list. */ if (isset($_POST['action']) && $_POST['action'] == 'ninja_forms_new_field') { if (!empty($nf_rte_editors) && isset($editors) && is_object($editors)) { $editors->output_js($field_id, $nf_rte_editors); } } }
function ninja_forms_display_fields($form_id) { global $ninja_forms_fields, $ninja_forms_loading, $ninja_forms_processing; $field_results = ninja_forms_get_fields_by_form_id($form_id); $field_results = apply_filters('ninja_forms_display_fields_array', $field_results, $form_id); if (is_array($field_results) and !empty($field_results)) { foreach ($field_results as $field) { if (isset($ninja_forms_loading) && $ninja_forms_loading->get_form_ID() == $form_id) { $field = $ninja_forms_loading->get_field_settings($field['id']); } else { if (isset($ninja_forms_processing) && $ninja_forms_processing->get_form_ID() == $form_id) { $field = $ninja_forms_processing->get_field_settings($field['id']); } } if (isset($ninja_forms_fields[$field['type']])) { $type = $ninja_forms_fields[$field['type']]; $field_id = $field['id']; if (isset($field['data']['req'])) { $req = $field['data']['req']; } else { $req = ''; } $default_label_pos = $type['default_label_pos']; $display_wrap = $type['display_wrap']; $display_label = $type['display_label']; $sub_edit_function = $type['sub_edit_function']; $display_function = $type['display_function']; //Check to see if we are currently editing a form submission. //If we are, then $display_function should be set to the sub_edit_function instead. if (is_object($ninja_forms_processing)) { $sub_id = $ninja_forms_processing->get_form_setting('sub_id'); } else { if (isset($_REQUEST['sub_id'])) { $sub_id = absint($_REQUEST['sub_id']); } else { $sub_id = ''; } } if ($sub_id != '' and $sub_edit_function != '' and is_admin()) { $display_function = $sub_edit_function; } $process_field = $type['process_field']; $data = $field['data']; //These filters can be used to temporarily modify the settings of a field, i.e. default_value. $data = apply_filters('ninja_forms_field', $data, $field_id); //Check the show_field value of our $data array. If it is set to false, don't output the field. if (isset($data['show_field'])) { $show_field = $data['show_field']; } else { $show_field = true; } if (isset($data['display_style'])) { $display_style = $data['display_style']; } else { $display_style = ''; } if (isset($data['visible'])) { $visible = $data['visible']; } else { $visible = true; } if ($display_style != '') { $display_style = 'style="' . $display_style . '"'; } if ($display_function != '' and $show_field) { if (isset($data['label_pos'])) { $label_pos = $data['label_pos']; } else { $label_pos = ''; } if ($label_pos == '') { $label_pos = $default_label_pos; } do_action('ninja_forms_display_before_field', $field_id, $data); //Check to see if display_wrap has been disabled. If it hasn't, show the wrapping DIV. if ($display_wrap) { $field_wrap_class = ninja_forms_get_field_wrap_class($field_id, $form_id); $field_wrap_class = apply_filters('ninja_forms_field_wrap_class', $field_wrap_class, $field_id); do_action('ninja_forms_display_before_opening_field_wrap', $field_id, $data); ?> <div class="<?php echo $field_wrap_class; ?> " <?php echo $display_style; ?> id="ninja_forms_field_<?php echo $field_id; ?> _div_wrap" data-visible="<?php echo $visible; ?> "> <?php do_action('ninja_forms_display_after_opening_field_wrap', $field_id, $data); } //Check to see if display_label has been disabled. If it hasn't, show the label. if ($display_label) { if ($label_pos == 'left' or $label_pos == 'above') { // Check the label position variable. If it is left or above, show the label. do_action('ninja_forms_display_before_field_label', $field_id, $data); do_action('ninja_forms_display_field_label', $field_id, $data); do_action('ninja_forms_display_after_field_label', $field_id, $data); } } //Check to see if there is a registered display function. If so, call it. if ($display_function != '') { do_action('ninja_forms_display_before_field_function', $field_id, $data); $arguments['field_id'] = $field_id; $arguments['data'] = $data; $arguments['form_id'] = $form_id; call_user_func_array($display_function, $arguments); do_action('ninja_forms_display_after_field_function', $field_id, $data); if ($label_pos == 'left' or $label_pos == 'inside') { do_action('ninja_forms_display_field_help', $field_id, $data); } } //Check to see if display_label has been disabled. If it hasn't, show the label. if ($display_label) { if ($label_pos == 'right' or $label_pos == 'below') { // Check the label position variable. If it is right or below, show the label. do_action('ninja_forms_display_before_field_label', $field_id, $data); do_action('ninja_forms_display_field_label', $field_id, $data); do_action('ninja_forms_display_after_field_label', $field_id, $data); } } //Check to see if display_wrap has been disabled. If it hasn't close the wrapping DIV if ($display_wrap) { do_action('ninja_forms_display_before_closing_field_wrap', $field_id, $data); ?> </div> <?php do_action('ninja_forms_display_after_closing_field_wrap', $field_id, $data); } do_action('ninja_forms_display_after_field', $field_id, $data); } } } } }
function ninja_forms_edit_field_open_div($form_id) { $all_fields = ninja_forms_get_fields_by_form_id($form_id); $pages = array(); if (is_array($all_fields) and !empty($all_fields)) { $pages = array(); $this_page = array(); $x = 0; foreach ($all_fields as $field) { if ($field['type'] == '_page_divider') { $x++; } $pages[$x][] = $field['id']; } } $page_count = count($pages); if (isset($_REQUEST['_current_page'])) { $current_page = $_REQUEST['_current_page']; } else { $current_page = 1; } if ($current_page > $page_count) { $current_page = $page_count; } $tmp = $current_page - 1; $offset = $tmp * -599.8182067871094; ?> <div id="ninja-forms-viewport"> <input class="button-primary menu-save ninja-forms-save-data" id="ninja_forms_save_data_top" type="submit" value="<?php _e('Save Field Settings', 'ninja-forms-mp'); ?> " /> <ul id="ninja-forms-mp-pagination"> <li class="mp-subtract">-</li> <span id="mp-page-list"> <?php if (is_array($pages) and !empty($pages)) { foreach ($pages as $page => $field_id) { if ($page == $current_page) { $active = 'active'; ?> <input type="hidden" id="_current_page" name="_current_page" value="<?php echo $current_page; ?> "> <?php } else { $active = ''; } ?> <li class="<?php echo $active; ?> mp-page" title="<?php echo $page; ?> " id="ninja_forms_mp_page_<?php echo $page; ?> "><?php echo $page; ?> </li> <?php } } ?> </span> <li class="mp-add">+</li> <span class="spinner" style="float:left;display:none;"></span> </ul> <div id="ninja-forms-slide" style="left: <?php echo $offset; ?> px;"> <?php }
function ninja_forms_field_conditional_cr_output($field_id, $x, $y, $cr = '', $ajax = false) { global $wpdb, $ninja_forms_fields; $field_row = ninja_forms_get_field_by_id($field_id); $form_id = $field_row['form_id']; $field_type = $field_row['type']; $field_data = $field_row['data']; if (isset($cr['field']) and $cr['field'] != '') { $selected_row = ninja_forms_get_field_by_id($cr['field']); $selected_type = $selected_row['type']; if (isset($ninja_forms_fields[$selected_type]['conditional'])) { $conditional = $ninja_forms_fields[$selected_type]['conditional']; } } $field_results = ninja_forms_get_fields_by_form_id($form_id); ?> <div class="description-wide single-criteria ninja-forms-field-<?php echo $field_id; ?> -conditional-<?php echo $x; ?> -cr" id="ninja_forms_field_<?php echo $field_id; ?> _conditional_<?php echo $x; ?> _cr_<?php echo $y; ?> "> <a href="#" id="ninja_forms_field_<?php echo $field_id; ?> _remove_cr" class="ninja-forms-field-remove-cr" name="<?php echo $x; ?> " rel="<?php echo $y; ?> " title="<?php echo esc_html_e('Remove criteria', 'ninja-forms-conditionals'); ?> ">X</a> → <select name="ninja_forms_field_<?php echo $field_id; ?> [conditional][<?php echo $x; ?> ][cr][<?php echo $y; ?> ][field]" class="ninja-forms-field-conditional-cr-field" id="ninja_forms_field_<?php echo $field_id; ?> _cr_field" title="<?php echo $x; ?> _<?php echo $y; ?> "> <option value=""><?php _e('-- Field', 'ninja-forms-conditionals'); ?> </option> <?php if (is_array($field_results)) { foreach ($field_results as $field) { $this_id = $field['id']; $field_data = $field['data']; if (isset($field_data['label'])) { $label = $field_data['label']; } else { $label = ''; } $field_type = $field['type']; $label = htmlentities($label); if (strlen($label) > 30) { $label = substr($label, 0, 30) . '...'; } if ($ninja_forms_fields[$field_type]['process_field'] and $this_id != $field_id) { ?> <option value="<?php echo $this_id; ?> " <?php if (isset($cr['field']) and $cr['field'] == $this_id) { echo 'selected'; } ?> ><?php _e('ID', 'ninja-forms-conditionals'); ?> : <?php echo $this_id; ?> - <?php echo $label; ?> </option> <?php } } } ?> </select> <select name="ninja_forms_field_<?php echo $field_id; ?> [conditional][<?php echo $x; ?> ][cr][<?php echo $y; ?> ][operator]"> <option value="==" <?php if (isset($cr['field']) and $cr['operator'] == '==') { echo 'selected'; } ?> ><?php _e('Equal To', 'ninja-forms-conditionals'); ?> </option> <option value="!=" <?php if (isset($cr['field']) and $cr['operator'] == '!=') { echo 'selected'; } ?> ><?php _e('Not Equal To', 'ninja-forms-conditionals'); ?> </option> <option value="<" <?php if (isset($cr['field']) and $cr['operator'] == '<') { echo 'selected'; } ?> ><?php _e('Less Than', 'ninja-forms-conditionals'); ?> </option> <option value=">" <?php if (isset($cr['field']) and $cr['operator'] == '>') { echo 'selected'; } ?> ><?php _e('Greater Than', 'ninja-forms-conditionals'); ?> </option> </select> <br /><span id="ninja_forms_field_<?php echo $field_id; ?> _conditional_<?php echo $x; ?> _cr_<?php echo $y; ?> _value" class=""> <?php if (isset($conditional['value']) and is_array($conditional['value'])) { ninja_forms_field_conditional_cr_value_output($field_id, $x, $y, $conditional, $cr, $field_data); } ?> </span> </div> <?php }
/** * Add the submitted vars to $this->data['fields']. * Also runs any functions registered to the field's pre_process hook. * * */ function setup_submitted_vars() { global $ninja_forms_fields, $wp; $form_ID = $this->data['form_ID']; //Get our plugin settings $plugin_settings = nf_get_settings(); $req_field_error = __($plugin_settings['req_field_error'], 'ninja-forms'); if (empty($this->data)) { return ''; } $this->data['action'] = 'submit'; $this->data['form']['form_url'] = $this->get_current_url(); $cache = isset($_SESSION['ninja_forms_transient_id']) ? get_transient($_SESSION['ninja_forms_transient_id']) : null; // If we have fields in our $_POST object, then loop through the $_POST'd field values and add them to our global variable. if (isset($_POST['_ninja_forms_display_submit']) or isset($_POST['_ninja_forms_edit_sub'])) { $field_results = ninja_forms_get_fields_by_form_id($form_ID); //$field_results = apply_filters('ninja_forms_display_fields_array', $field_results, $form_ID); foreach ($field_results as $field) { $data = $field['data']; $field_id = $field['id']; $field_type = $field['type']; if (isset($_POST['ninja_forms_field_' . $field_id])) { $val = ninja_forms_stripslashes_deep($_POST['ninja_forms_field_' . $field_id]); $this->data['submitted_fields'][] = $field_id; } else { $val = false; } $this->data['fields'][$field_id] = $val; $field_row = ninja_forms_get_field_by_id($field_id); $field_row['data']['field_class'] = 'ninja-forms-field'; $this->data['field_data'][$field_id] = $field_row; } foreach ($_POST as $key => $val) { if (substr($key, 0, 1) == '_') { $this->data['extra'][$key] = $val; } } //Grab the form info from the database and store it in our global form variables. $form_row = ninja_forms_get_form_by_id($form_ID); $form_data = $form_row['data']; if (isset($_REQUEST['_sub_id']) and !empty($_REQUEST['_sub_id'])) { $form_data['sub_id'] = absint($_REQUEST['_sub_id']); } else { $form_data['sub_id'] = ''; } //Loop through the form data and set the global $ninja_form_data variable. if (is_array($form_data) and !empty($form_data)) { foreach ($form_data as $key => $val) { if (!is_array($val)) { $value = stripslashes($val); //$value = esc_html($value); //$value = htmlspecialchars($value); } else { $value = $val; } $this->data['form'][$key] = $value; } $this->data['form']['admin_attachments'] = array(); $this->data['form']['user_attachments'] = array(); } } else { if ($cache !== false) { // Check to see if we have $_SESSION values from a submission. if (is_array($cache['field_values'])) { // We do have a submission contained in our $_SESSION variable. We'll populate the field values with that data. foreach ($cache['field_values'] as $field_id => $val) { $field_row = ninja_forms_get_field_by_id($field_id); if (is_array($field_row) and !empty($field_row)) { if (isset($field_row['type'])) { $field_type = $field_row['type']; } else { $field_type = ''; } if (isset($field_row['data']['req'])) { $req = $field_row['data']['req']; } else { $req = ''; } $val = ninja_forms_stripslashes_deep($val); //$val = ninja_forms_esc_html_deep( $val ); $this->data['fields'][$field_id] = $val; if (isset($cache['field_settings'][$field_id])) { $field_row = $cache['field_settings'][$field_id]; } else { $field_row = ninja_forms_get_field_by_id($field_id); } $field_row['data']['field_class'] = 'ninja-forms-field'; $this->data['field_data'][$field_id] = $field_row; } } } $this->data['form'] = $cache['form_settings']; $this->data['success'] = $cache['success_msgs']; $this->data['errors'] = $cache['error_msgs']; $this->data['extra'] = $cache['extra_values']; } } }
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); } } }
function ninja_forms_display_conditionals($form_id) { global $ninja_forms_fields, $ninja_forms_loading, $ninja_forms_processing; $field_results = ninja_forms_get_fields_by_form_id($form_id); $field_results = apply_filters('ninja_forms_display_fields_array', $field_results, $form_id); if (is_array($field_results) and !empty($field_results)) { /* $watch_fields = array(); foreach($field_results as $field){ $data = $field['data']; if(isset($data['conditional']) AND is_array($data['conditional'])){ foreach($data['conditional'] as $conditional){ if(isset($conditional['cr']) AND is_array($conditional['cr'])){ foreach($conditional['cr'] as $cr){ $watch_fields[$cr['field']] = 1; } } } } } */ //foreach( $field_results as $field_id => $user_value ) { foreach ($field_results as $field) { // if ( isset ( $ninja_forms_loading ) ) { // $field = $ninja_forms_loading->get_field_settings( $field_id ); // } else { // $field = $ninja_forms_processing->get_field_settings( $field_id ); // } if (isset($ninja_forms_fields[$field['type']])) { $type = $ninja_forms_fields[$field['type']]; $field_id = $field['id']; $display_wrap = $type['display_wrap']; $display_label = $type['display_label']; $display_function = $type['display_function']; $data = $field['data']; $x = 0; if (isset($data['conditional']) and is_array($data['conditional'])) { if (!isset($local_vars)) { $local_vars = array(); } foreach ($data['conditional'] as $conditional) { $local_vars['field_' . $field_id]['conditional'][$x]['action'] = $conditional['action']; $local_vars['field_' . $field_id]['conditional'][$x]['connector'] = $conditional['connector']; $local_vars['field_' . $field_id]['conditional'][$x]['value'] = $conditional['value']; if (isset($conditional['cr']) and is_array($conditional['cr'])) { $y = 0; foreach ($conditional['cr'] as $cr) { if (isset($cr['field'])) { $field = $cr['field']; } else { $field = ''; } if (isset($cr['operator'])) { $operator = $cr['operator']; } else { $operator = ''; } if (isset($cr['value'])) { $value = $cr['value']; } else { $value = ''; } $local_vars['field_' . $field_id]['conditional'][$x]['cr'][$y]['field'] = $field; $local_vars['field_' . $field_id]['conditional'][$x]['cr'][$y]['operator'] = $operator; $local_vars['field_' . $field_id]['conditional'][$x]['cr'][$y]['value'] = $value; $y++; } } $x++; } } } } if (isset($local_vars)) { return $local_vars; } else { return ''; } } }
function ninja_forms_filter_email_add_fields($message) { global $ninja_forms_processing, $ninja_forms_fields; $form_id = $ninja_forms_processing->get_form_ID(); $all_fields = ninja_forms_get_fields_by_form_id($form_id); //$all_fields = $ninja_forms_processing->get_all_fields(); $tmp_array = array(); if (is_array($all_fields)) { foreach ($all_fields as $field) { if ($ninja_forms_processing->get_field_value($field['id'])) { $tmp_array[$field['id']] = $ninja_forms_processing->get_field_value($field['id']); } } } $all_fields = apply_filters('ninja_forms_email_all_fields_array', $tmp_array, $form_id); $email_type = $ninja_forms_processing->get_form_setting('email_type'); if (is_array($all_fields) and !empty($all_fields)) { if ($email_type == 'html') { $message .= "<br><br>"; $message .= apply_filters('nf_email_user_values_title', __('User Submitted Values:', 'ninja-forms')); $message .= "<table>"; } else { $message = str_replace("<p>", "\r\n", $message); $message = str_replace("</p>", "", $message); $message = str_replace("<br>", "\r\n", $message); $message = str_replace("<br />", "\r\n", $message); $message = strip_tags($message); $message .= "\r\n \r\n"; $message .= apply_filters('nf_email_user_values_title', __('User Submitted Values:', 'ninja-forms')); $message .= "\r\n"; } foreach ($all_fields as $field_id => $user_value) { $field_row = $ninja_forms_processing->get_field_settings($field_id); $field_label = $field_row['data']['label']; $field_label = apply_filters('ninja_forms_email_field_label', $field_label, $field_id); $user_value = apply_filters('ninja_forms_email_user_value', $user_value, $field_id); $field_type = $field_row['type']; if ($ninja_forms_fields[$field_type]['process_field']) { if (is_array($user_value) and !empty($user_value)) { $x = 0; foreach ($user_value as $val) { if (!is_array($val)) { if ($x > 0) { $field_label = '----'; $field_label = apply_filters('ninja_forms_email_field_label', $field_label, $field_id); } if ($email_type == 'html') { $message .= "<tr><td width='50%'>" . $field_label . ":</td><td width='50%'>" . $val . "</td></tr>"; } else { $message .= $field_label . " - " . $val . "\r\n"; } } else { foreach ($val as $v) { if (!is_array($v)) { if ($x > 0) { $field_label = '----'; $field_label = apply_filters('ninja_forms_email_field_label', $field_label, $field_id); } if ($email_type == 'html') { $message .= "<tr><td width='50%'>" . $field_label . ":</td><td width='50%'>" . $v . "</td></tr>"; } else { $message .= $field_label . " - " . $v . "\r\n"; } } else { foreach ($v as $a) { if ($x > 0) { $field_label = '----'; $field_label = apply_filters('ninja_forms_email_field_label', $field_label, $field_id); } if ($email_type == 'html') { $message .= "<tr><td width='50%'>" . $field_label . ":</td><td width='50%'>" . $a . "</td></tr>"; } else { $message .= $field_label . " - " . $a . "\r\n"; } } } } } $x++; } } else { if ($email_type == 'html') { $message .= "<tr><td width='50%'>" . $field_label . ":</td><td width='50%'>" . $user_value . "</td></tr>"; } else { $message .= $field_label . " - " . $user_value . "\r\n"; } } } } if ($email_type == 'html') { $message .= "</table>"; } } $message = apply_filters('ninja_forms_email_field_list', $message, $form_id); return $message; }
function ninja_forms_get_field_class($field_id) { $field_row = ninja_forms_get_field_by_id($field_id); $field_data = $field_row['data']; $field_data = apply_filters('ninja_forms_field', $field_data, $field_id); $field_class = 'ninja-forms-field'; $x = 0; $custom_class = ''; if (isset($field_data['class']) and !empty($field_data['class'])) { $class_array = explode(",", $field_data['class']); foreach ($class_array as $class) { $custom_class .= $class; if ($x != count($class_array) - 1) { $custom_class .= " "; } $x++; } } $req_class = ''; if (isset($field_data['req']) and $field_data['req'] == 1) { $req_class = 'ninja-forms-req'; } $form_id = $field_row['form_id']; $watch_fields = array(); $field_results = ninja_forms_get_fields_by_form_id($form_id); $calc_listen = ''; $sub_total = false; $tax = false; foreach ($field_results as $field) { $data = $field['data']; if (isset($data['conditional']) and is_array($data['conditional'])) { foreach ($data['conditional'] as $conditional) { if (isset($conditional['cr']) and is_array($conditional['cr'])) { foreach ($conditional['cr'] as $cr) { $watch_fields[$cr['field']] = 1; } } } } // Check for advanced calculation fields that reference this field. If we find one, and use_calc_adv is set to 1, add a special class to this field. if ($field['type'] == '_calc') { // Check to see if this is a sub_total calculation if (isset($data['calc_method'])) { $calc_method = $data['calc_method']; } else { $calc_method = 'auto'; } switch ($calc_method) { case 'auto': if (isset($field_data['calc_auto_include']) and $field_data['calc_auto_include'] == 1) { $calc_listen = 'ninja-forms-field-calc-listen ninja-forms-field-calc-auto'; } break; case 'fields': foreach ($data['calc'] as $calc) { if ($calc['field'] == $field_id) { if ($calc_listen == '') { $calc_listen = 'ninja-forms-field-calc-listen'; } break; } } break; case 'eq': $eq = $data['calc_eq']; if (preg_match("/\\bfield_" . $field_id . "\\b/i", $eq)) { if ($calc_listen == '') { $calc_listen = 'ninja-forms-field-calc-listen'; } break; } break; } } } if (isset($field_data['payment_sub_total']) and $field_data['payment_sub_total'] == 1) { if ($calc_listen == '') { $calc_listen = 'ninja-forms-field-calc-listen'; } } // Check to see if this is a tax field; if ($field_row['type'] == '_tax') { if ($calc_listen == '') { $calc_listen = 'ninja-forms-field-calc-listen'; } } // Check to see if we are dealing with a field that has the user_info_field_group set. if (isset($data['user_info_field_group_name']) and $data['user_info_field_group_name'] != '') { $user_info_group_class = $data['user_info_field_group_name'] . '-address'; } else { $user_info_group_class = ''; } // Check to see if we are dealing with an address field. if (isset($data['user_address_1']) and $data['user_address_1'] == 1) { $address_class = 'address address1'; } if (isset($data['user_address_2']) and $data['user_address_2'] == 1) { $address_class = 'address address2'; } if (isset($data['user_city']) and $data['user_city'] == 1) { $address_class = 'address city'; } if (isset($data['user_state']) and $data['user_state'] == 1) { $address_class = 'address state'; } if (isset($data['user_city']) and $data['user_city'] == 1) { $address_class = 'address city'; } $listen_class = ''; if (isset($watch_fields[$field_id]) and $watch_fields[$field_id] == 1) { $listen_class = "ninja-forms-field-conditional-listen"; } if ($req_class != '') { $field_class .= " " . $req_class; } if ($custom_class != '') { $field_class .= " " . $custom_class; } if ($listen_class != '') { $field_class .= " " . $listen_class; } if ($calc_listen != '') { $field_class .= ' ' . $calc_listen; } if ($user_info_group_class != '') { $field_class .= " " . $user_info_group_class; } if ($address_class != '') { $field_class .= " " . $address_class; } return apply_filters('ninja_forms_display_field_class', $field_class, $field_id); }
/** * * Function to add the field data to $this->data['fields']. * * @since 2.3.9 * @return void. */ function setup_field_data() { global $current_user, $post, $ninja_forms_fields; $form_id = $this->data['form_ID']; $field_results = ninja_forms_get_fields_by_form_id($form_id); //$field_results = apply_filters('ninja_forms_display_fields_array', $field_results, $form_id); foreach ($field_results as $field) { $data = $field['data']; $field_id = $field['id']; $field_type = $field['type']; if (isset($data['default_value'])) { $default_value = $data['default_value']; } else { if (isset($ninja_forms_fields[$field_type]['default_value'])) { $default_value = $ninja_forms_fields[$field_type]['default_value']; } else { $default_value = ''; } } $default_value_type = isset($data['default_value_type']) ? $data['default_value_type'] : ''; // Check to see if our default value is one of our preset values: wp_get_current_user(); $user_ID = $current_user->ID; if ($user_ID and !empty($user_ID)) { $user_firstname = $current_user->user_firstname; $user_lastname = $current_user->user_lastname; $user_display_name = $current_user->display_name; $user_email = $current_user->user_email; } else { $user_ID = ''; $user_firstname = ''; $user_lastname = ''; $user_display_name = ''; $user_email = ''; } if (is_object($post)) { $post_ID = $post->ID; $post_title = $post->post_title; $post_url = get_permalink($post_ID); } else { $post_ID = ''; $post_title = ''; $post_url = ''; } switch ($default_value) { case '_user_id': $default_value = $user_ID; break; case '_user_firstname': $default_value = $user_firstname; break; case '_user_lastname': $default_value = $user_lastname; break; case '_user_display_name': $default_value = $user_display_name; break; case '_user_email': $default_value = $user_email; break; case 'post_id': $default_value = $post_ID; break; case 'post_title': $default_value = $post_title; break; case 'post_url': $default_value = $post_url; break; case 'today': $plugin_settings = nf_get_settings(); if (isset($plugin_settings['date_format'])) { $date_format = $plugin_settings['date_format']; } else { $date_format = 'm/d/Y'; } $default_value = date($date_format, current_time('timestamp')); break; default: if ('querystring' == $default_value_type) { $default_value = isset($_GET[$default_value]) ? esc_html($_GET[$default_value]) : ''; } break; } $this->data['fields'][$field_id] = $default_value; $field_row = ninja_forms_get_field_by_id($field_id); $field_row['data']['field_class'] = 'ninja-forms-field'; $this->data['field_data'][$field_id] = $field_row; } }
function ninja_forms_export_subs_to_csv($sub_ids = '', $return = false) { global $ninja_forms_fields, $ninja_forms_processing; $plugin_settings = get_option("ninja_forms_settings"); if (isset($plugin_settings['date_format'])) { $date_format = $plugin_settings['date_format']; } else { $date_format = 'm/d/Y'; } //Create a $label_array that contains all of the field labels. //Get the Form ID. if (isset($ninja_forms_processing)) { $form_id = $ninja_forms_processing->get_form_ID(); } else { if (isset($_REQUEST['form_id'])) { $form_id = absint($_REQUEST['form_id']); } } //Get the fields attached to the Form ID $field_results = ninja_forms_get_fields_by_form_id($form_id); //Set the label array to a blank $label_array = array(); $value_array = array(); $sub_id_array = array(); $label_array[0][] = "Date"; if (is_array($field_results) and !empty($field_results)) { foreach ($field_results as $field) { $field_type = $field['type']; $field_id = $field['id']; if (isset($ninja_forms_fields[$field_type]['process_field'])) { $process_field = $ninja_forms_fields[$field_type]['process_field']; } else { $process_field = true; } if (isset($field['data']['label'])) { $label = $field['data']['label']; } else { $label = ''; } if ($process_field) { $label_array[0][$field_id] = apply_filters('ninja_forms_export_sub_label', $label, $field_id); } } } if (is_array($sub_ids) and !empty($sub_ids)) { $x = 0; foreach ($sub_ids as $id) { $sub_row = ninja_forms_get_sub_by_id($id); $sub_id_array[$x] = $id; $date_updated = date($date_format, strtotime($sub_row['date_updated'])); $value_array[$x][] = $date_updated; if (is_array($sub_row['data']) and !empty($sub_row['data'])) { foreach ($label_array[0] as $field_id => $label) { if ($field_id != 0) { $found = false; foreach ($sub_row['data'] as $data) { $data['user_value'] = ninja_forms_stripslashes_deep($data['user_value']); $data['user_value'] = ninja_forms_html_entity_decode_deep($data['user_value'], ENT_QUOTES); if ($data['field_id'] == $field_id) { if (is_array($data['user_value'])) { $user_value = implode_r(',', $data['user_value']); } else { $user_value = $data['user_value']; } $found = true; } } if (!$found) { $user_value = ''; } $value_array[$x][] = apply_filters('ninja_forms_export_sub_value', $user_value, $field_id); } } } $x++; } } $value_array = ninja_forms_stripslashes_deep($value_array); $value_array = apply_filters('ninja_forms_export_subs_value_array', $value_array, $sub_id_array); $label_array = ninja_forms_stripslashes_deep($label_array); $label_array = apply_filters('ninja_forms_export_subs_label_array', $label_array, $sub_id_array); $array = array($label_array, $value_array); $today = date($date_format); $filename = apply_filters('ninja_forms_export_subs_csv_file_name', 'ninja_forms_subs_' . $today); $filename = $filename . ".csv"; if ($return) { return str_putcsv($array, apply_filters('ninja_forms_csv_delimiter', ','), apply_filters('ninja_forms_csv_enclosure', '"'), apply_filters('ninja_forms_csv_terminator', "\n")); } else { header("Content-type: application/csv"); header("Content-Disposition: attachment; filename=" . $filename); header("Pragma: no-cache"); header("Expires: 0"); echo apply_filters('ninja_forms_csv_bom', ""); // Byte Order Mark echo str_putcsv($array, apply_filters('ninja_forms_csv_delimiter', ','), apply_filters('ninja_forms_csv_enclosure', '"'), apply_filters('ninja_forms_csv_terminator', "\n")); die; } }
function ninja_forms_calc_filter_list_options_span($class, $field_id) { $field_row = ninja_forms_get_field_by_id($field_id); $add_class = false; // Check to see if this field has cal_auto_include set to 1. If it does, we want to output a class name. if (isset($field_row['data']['calc_auto_include']) and !empty($field_row['data']['calc_auto_include'])) { $add_class = true; } $form = ninja_forms_get_form_by_field_id($field_id); $form_id = $form['id']; $all_fields = ninja_forms_get_fields_by_form_id($form_id); foreach ($all_fields as $field) { if ($field['type'] == '_calc') { if (isset($field['data']['calc_method'])) { $calc_method = $field['data']['calc_method']; } else { $calc_method = 'auto'; } switch ($calc_method) { case 'fields': if (isset($field['data']['calc'])) { foreach ($field['data']['calc'] as $calc) { if ($calc['field'] == $field_id) { $add_class = true; break; } } } break; case 'eq': $eq = $field['data']['calc_eq']; if (preg_match("/\\bfield_" . $field_id . "\\b/i", $eq)) { $add_class = true; break; } break; } } } if ($add_class) { $class .= ' ninja-forms-field-list-options-span-calc-listen'; } return $class; }