Создать новое поле выбора (Drop Down) гравитационных форм - PullRequest
0 голосов
/ 13 апреля 2020

Я попытался создать новое поле выбора, а затем, когда я добавляю его на свой веб-сайт, ввод все еще отключен. Может кто-нибудь поможет, как можно решить эту проблему. Спасибо. Это изображение, чтобы показать разницу между оригиналом и новым полем: [1]: https://i.stack.imgur.com/4NgCv.png

, как вы можете видеть на этом рисунке, оригинал увеличен, но тот, который я создаю этот код отключен, пожалуйста, помогите мне, если кто-нибудь знает, как ее решить. Спасибо Это мой код:

// Add a custom field button to the advanced to the field editor
add_filter('gform_add_field_buttons', 'add_field');
function add_field($field_groups)

{
  foreach ($field_groups as &$group) {
    if ($group['name'] == 'standard_fields') {
      $group['fields'][] = array (
        'class'     => 'button',
        'value'     => __('choices_field', 'gravityform'),
        'onclick'   => "StartAddField('abdo');",
        //'data-type' => 'choices_field'
      );
      break;
    }
  }
  return $field_groups;
}

// Adds title to GF custom field

add_filter( 'gform_field_type_title' , 'add_title' );
function add_title( $title ) {
if ( $title== 'abdo' )
return __( 'New_dropdown' , 'gravityforms' );
}

// Adds the input area to the external side
add_action( "gform_field_input" , "wps_abdo_field_input", 10, 5 );
function wps_abdo_field_input ( $input, $field, $value, $lead_id, $form_id ){

if ( $field["type"] == "abdo" ) {

//$input_name = $form_id .'_' . $field["id"];
$tabindex = GFCommon::get_tabindex();
$get_choices=GFCommon::get_select_choices( $field, $value='', $support_placeholders = true );
$val = RGFormsModel::get_choice_text( $field, $value );
//$css = isset( $field['cssClass'] ) ?: $field['cssClass'] ;
return sprintf("<div class='ginput_container ginput_container_select'><select name='input_%s' id='%s' class='%s gfield_select' $tabindex disabled='disabled' aria-invalid='False'> %s
%s</select></div>", $field["id"], 'input_'.$field['id'] , $field['size'],$get_choices,$val);

}

return $input;
}


// Now we execute some javascript technicalitites for the field to load correctly
add_action( "gform_editor_js", "wps_gform_editor_js" );
function wps_gform_editor_js(){
?>

<script type='text/javascript'>

jQuery(document).ready(function($) {

// from forms.js; can add custom "abdo_setting" as well
fieldSettings["abdo"] = ".label_placement_setting,.label_setting, .description_setting, .admin_label_setting, .size_setting, .default_value_setting, .placeholder_setting, .error_message_setting, .css_class_setting, .choices_setting, .duplicate_setting, .enable_enhanced_ui_setting, .rules_setting, .visibility_setting, .conditional_logic_field_setting,.prepopulate_field_setting, .abdo_setting"; //this will show all the fields of the Paragraph Text field minus a couple that I didn't want to appear.

//binding to the load field settings event to initialize the checkbox
$(document).bind("gform_load_field_settings", function(event, field, form){
jQuery("#field_abdo").attr("checked", field["field_abdo"] == true);
$("#field_abdo_value").val(field["abdo"]);
});
});

</script>
<?php
}


add_action( 'gform_editor_js_set_default_values' , 'wdm_set_default_values' );
function wdm_set_default_values()
{
  // Define the type of Gravity Forms field you are creating
  ?>
  case 'abdo' : field.inputType = 'checkbox';
  field.label = <?php echo json_encode(esc_html__('Custom Field Title', 'gravityforms')); ?>;
  if (!field.label)
    field.label = <?php echo json_encode(esc_html__('Custom Field Title', 'gravityforms')); ?>;
  if (!field.choices)
    field.choices = new Array(new Choice(<?php echo json_encode(esc_html__('First Choice', 'gravityforms')); ?>), new Choice(<?php echo json_encode(esc_html__('Second Choice', 'gravityforms')); ?>), new Choice(<?php echo json_encode(esc_html__('Third Choice', 'gravityforms')); ?>));
  field.inputs = new Array();
  for (var i = 1; i <= field.choices.length; i++) {
    field.inputs.push(new Input(field.id + (i / 10), field.choices[i - 1].text));
  }
  break;
  <?php
}
...