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;
             }
         }
     }
 }
Example #2
0
 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;
 }