function usp_custom_field($args) { $fieldset = usp_fieldset(); $fieldset_before = $fieldset['fieldset_before']; $fieldset_after = $fieldset['fieldset_after']; if (isset($args['id']) && !empty($args['id'])) { $id = $args['id']; } else { return __('error:usp_custom_field:1:', 'usp') . $args['id']; } if (isset($args['form']) && !empty($args['form'])) { $form = usp_get_form_id($args['form']); } else { return __('error:usp_custom_field:2:', 'usp') . $args['form']; } $custom_fields = get_post_custom($form); if (is_null($custom_fields) || empty($custom_fields)) { return __('error:usp_custom_field:3:', 'usp') . $custom_fields; } foreach ($custom_fields as $key => $value) { $key = trim($key); if ('_' == $key[0]) { continue; } if ($key !== '[usp_custom_field form="' . $args['form'] . '" id="' . $id . '"]') { continue; } $get_value = ''; if (isset($_COOKIE['remember'])) { if (preg_match("/name#([0-9a-z_-]+)/i", $value[0], $matches)) { if (isset($_SESSION['usp_form_session']['usp-custom-' . $matches[1]])) { $get_value = $_SESSION['usp_form_session']['usp-custom-' . $matches[1]]; } } elseif (isset($_SESSION['usp_form_session']['usp-custom-' . $id])) { $get_value = $_SESSION['usp_form_session']['usp-custom-' . $id]; } } if (preg_match("/usp_custom_field/i", $key)) { $default_atts = array('field' => 'input', 'type' => 'text', 'value' => $get_value, 'data-required' => 'true', 'placeholder' => 'Example Input ' . $id, 'class' => 'example-class-' . $id, 'label' => 'Example Label ' . $id, 'for' => $id, 'name' => $id, 'label_class' => 'example-class-' . $id, 'label_custom' => '', 'custom_1' => '', 'custom_2' => '', 'custom_3' => '', 'custom_4' => '', 'custom_5' => '', 'rows' => '3', 'cols' => '30', 'accept' => 'image/*', 'checked' => '', 'selected' => ''); $atts = explode("|", $value[0]); foreach ($atts as $att) { $a = explode("#", $att); // eg: $a[0] = field, $a[1] = input if ($a[0] == 'atts' && $a[1] == 'defaults') { continue; } // use defaults if (isset($a[0])) { $user_att_names[] = $a[0]; } if (isset($a[1])) { $user_att_values[] = $a[1]; } } if (!empty($user_att_names) && !empty($user_att_values)) { $user_atts = array_combine($user_att_names, $user_att_values); } else { $user_atts = $default_atts; } $field_atts = wp_parse_args($user_atts, $default_atts); if (isset($user_att_names)) { unset($user_att_names); } if (isset($user_att_values)) { unset($user_att_values); } $custom_att_names = array(); $custom_att_values = array(); foreach ($field_atts as $key => $value) { if (preg_match("/custom_/i", $key)) { $b = explode(":", $value); if (isset($b[0])) { $custom_att_names[] = $b[0]; } if (isset($b[1])) { $custom_att_values[] = $b[1]; } if (isset($field_atts[$key])) { unset($field_atts[$key]); } } } foreach ($custom_att_names as $key => $value) { if (is_null($value) || empty($value)) { unset($custom_att_names[$key]); } } foreach ($custom_att_values as $key => $value) { if (is_null($value) || empty($value)) { unset($custom_att_values[$key]); } } if (!empty($custom_att_names) && !empty($custom_att_values)) { $custom_atts = array_combine($custom_att_names, $custom_att_values); } else { $custom_atts = array(); } $field_atts = wp_parse_args($custom_atts, $field_atts); if (isset($custom_att_names)) { unset($custom_att_names); } if (isset($custom_att_values)) { unset($custom_att_values); } if ($field_atts) { if ($field_atts['data-required'] == 'true') { $field_hidden = '<input name="usp-custom-' . $field_atts['name'] . '-required" value="1" type="hidden" />'; $parsley = ' required="required"'; } else { $field_hidden = ''; $parsley = ''; } if (isset($field_atts['data-richtext']) && $field_atts['data-richtext'] == 'true') { $settings = array('wpautop' => true, 'media_buttons' => true, 'textarea_name' => 'usp-custom-' . $field_atts['name'], 'textarea_rows' => $field_atts['rows'], 'tabindex' => '', 'editor_css' => '', 'editor_class' => $field_atts['class'], 'teeny' => false, 'dfw' => false, 'tinymce' => true, 'quicktags' => true); ob_start(); // until get_wp_editor() is available.. wp_editor($field_atts['value'], 'uspcustom', $settings); $get_wp_editor = ob_get_clean(); if (!empty($get_wp_editor)) { return $fieldset_before . $get_wp_editor . $field_hidden . $fieldset_after; } } if (!empty($field_atts['checked'])) { $checked = ' checked="checked"'; } else { $checked = ''; } if (!empty($field_atts['selected'])) { $selected = ' selected="selected"'; } else { $selected = ''; } $error = ''; wp_parse_str(wp_strip_all_tags($_SERVER['QUERY_STRING']), $vars); if ($vars) { foreach ($vars as $var) { if (preg_match("/^usp_error_custom_([0-9a-z_-]+)\$/i", $var, $match)) { if ($match[1] == $id) { $error = 'usp-error-field usp-error-custom '; } } elseif (preg_match("/^usp_error_([a-g]+)\$/i", $var, $match)) { $user_fields = array('a' => 'nicename', 'b' => 'displayname', 'c' => 'nickname', 'd' => 'firstname', 'e' => 'lastname', 'f' => 'description', 'g' => 'password'); foreach ($user_fields as $key => $value) { if ($field_atts['name'] == $value && $match[1] == $key) { $error = 'usp-error-field usp-error-register '; } } } } } switch ($field_atts['field']) { case 'input': if ($field_atts['type'] == 'file' && !empty($field_atts['accept'])) { $accept = 'accept="' . $field_atts['accept'] . '" '; } else { $accept = ''; } $field_start = '<input ' . $accept . 'name="usp-custom-' . $field_atts['name'] . '" '; $field_end = 'class="' . $error . $field_atts['class'] . ' usp-input usp-input-custom usp-form-' . $form . '"' . $checked . $selected . $parsley . ' />' . "\n" . $field_hidden; $label_class = 'class="' . $field_atts['label_class'] . ' usp-label usp-label-input usp-label-custom usp-form-' . $form; break; case 'textarea': $field_start = '<textarea name="usp-custom-' . $field_atts['name'] . '" '; $field_end = 'class="' . $error . $field_atts['class'] . ' usp-input usp-textarea usp-textarea-custom usp-form-' . $form . '" rows="' . $field_atts['rows'] . '" cols="' . $field_atts['cols'] . '"' . $parsley . '>' . $field_atts['value'] . '</textarea>' . "\n" . $field_hidden; $label_class = 'class="' . $field_atts['label_class'] . ' usp-label usp-label-textarea usp-label-custom usp-form-' . $form; break; default: return __('error:usp_custom_field:4:', 'usp') . $field_atts['field']; break; } $label_for = 'usp-custom-' . $field_atts['for']; $label_custom = $field_atts['label_custom']; $label = $field_atts['label']; $label_start = '<label for="' . $label_for . '" ' . $label_class . '" ' . $label_custom; $label_end = '>' . $label . '</label>'; if ($field_atts['label'] == 'null') { $label = ''; } else { $label = trim($label_start) . trim($label_end) . "\n"; } unset($field_atts['field'], $field_atts['accept'], $field_atts['name'], $field_atts['checked'], $field_atts['selected'], $field_atts['class'], $field_atts['label_class'], $field_atts['rows'], $field_atts['cols']); unset($field_atts['for'], $field_atts['label_custom'], $field_atts['label']); $attributes = ''; $content_start = $label . $field_start; $content_end = $field_end; foreach ($field_atts as $att_name => $att_value) { $attributes .= $att_name . '="' . $att_value . '" '; } $content = $content_start . $attributes . $content_end; return $fieldset_before . $content . $fieldset_after; } else { return __('error:usp_custom_field:5:', 'usp') . $field_atts; } } } }
function usp_input_subject($args) { if (isset($_SESSION['usp_form_session']['usp-subject']) && isset($_COOKIE['remember'])) { $value = $_SESSION['usp_form_session']['usp-subject']; } else { $value = ''; } if (isset($args['custom'])) { $custom = sanitize_text_field($args['custom']) . ' '; } else { $custom = ''; } if (isset($args['class'])) { $class = 'usp-input,usp-input-subject,' . $args['class']; } else { $class = 'usp-input,usp-input-subject'; } $classes = usp_classes($class, '10'); if (isset($args['fieldset'])) { $fieldset_custom = sanitize_text_field($args['fieldset']); } else { $fieldset_custom = ''; } $fieldset = usp_fieldset($fieldset_custom); $fieldset_before = $fieldset['fieldset_before']; $fieldset_after = $fieldset['fieldset_after']; $field = 'usp_error_10'; $placeholder = usp_placeholder($args, $field); $label = usp_label($args, $field); $required = usp_required($args); if ($required == 'true') { $parsley = 'required="required" '; } else { $parsley = ''; } $max = usp_max_att($args, '99'); if (empty($label)) { $content = ''; } else { $content = '<label for="usp-subject" class="usp-label usp-label-subject">' . $label . '</label>' . "\n"; } $content .= '<input name="usp-subject" type="text" value="' . $value . '" data-required="' . $required . '" ' . $parsley . 'maxlength="' . $max . '" placeholder="' . $placeholder . '" class="' . $classes . '" ' . $custom . '/>' . "\n"; if ($required == 'true') { $content .= '<input name="usp-subject-required" value="1" type="hidden" />' . "\n"; } return $fieldset_before . $content . $fieldset_after; }