Доброго времени всем суток. Помог сестре с бесплатным сайтом по стрижке, а она попросила посмотреть возможно ли в плагине Wordpress изменить поле с типа text на select, с возможностью выбора 3 значений "Стрижка", "Бритье", "Стрижка+Бритье". Опыта маловато вот и пришел за помощью. Насколько я понял за вывод этого поля отвечает вот этот участок кода. PHP: <div id="field_type_reservation_field2" class="field_types"> <!-- additional 2 --> <div class="booking_float_left booking_width_20p booking_height_30 booking_line_30"><?php echo $bookingLangObj->getLabel("RESERVATION_ADDITIONAL_FIELD2"); ?>:</div> <div class="booking_float_left booking_margin_l_10"> <input type="hidden" name="reservation_field_name[]" value="reservation_field2" /> <select name="field_type[]"> <option value="text" <?php if($bookingSettingObj->getReservationFieldType('reservation_field2')== 'text') { echo 'selected'; } ?>><?php echo $bookingLangObj->getLabel("FORM_FIELDS_TYPE_TEXT"); ?></option> <option value="textarea" <?php if($bookingSettingObj->getReservationFieldType('reservation_field2')== 'textarea') { echo 'selected'; } ?>><?php echo $bookingLangObj->getLabel("FORM_FIELDS_TYPE_AREA"); ?></option> </select> </div> <div class="booking_cleardiv"></div> </div> в админке плагина можно указать выводить ли это поле. Можно ли как то изменить что бы при выборе в админке этого поля"additional 2", оно давало type select с теми 3 значенями (а сами значения прописать в коде плагина). Заранее спасибо за ответ.
Я пересмотрел все плагины такого типа, у всех text поля. Да и этот уже прописан для темы wordpress с стилями. Так что все очень сложно и лучше оставить затею замену text/textArea на select?
На это нужно потратить время, тебе придётся ждать, может кто это сделает, или самому учить программирование, чтобы ты смог разобраться. Ещё в разделе free-lance могут за деньги сделать. --- Добавлено --- Есть ссылка где можно посмотреть на работу плагина?
--- Добавлено --- Я думал что можно как то расширить список например просто добавить к полю 2, еще 1 вариацию что то типо такого) PHP: <option value="select" <?phpif($bookingSettingObj->getReservationFieldType('reservation_field2')=='select'){echo'selected';}?>><?phpecho$bookingLangObj->getLabel("FORM_FIELDS_TYPE_SELECT");?></option>
Думаю что можно сделать не красиво, вот там где клиент видит поле "Укажите услугу(Стрижка, Бритье, Бритье+Стрижка)" можно поменять input тег на select. Для этого нужно найти код который отвечает за вывод этих полей там где их видит клиент. По идее там цикл, и можно добавить простое условие, при имени формы reservation_field2 вместо input или textarea будем выводить select. Найди этот код, дальше подумаем как сделать.
Это кусок кода из фала index.php дирректории public на первый взгляд он и выводит это поле PHP: <!-- additional 2 --> <?php if($bookingSettingObj->getReservationFieldType('reservation_field2') == 'text') { ?> <div class="booking_float_left booking_margin_r_2p booking_width_23p"> <div><?php echo $bookingLangObj->getLabel("INDEX_RESERVATION_ADDITIONAL_FIELD2"); ?></div> <input type="text" name="reservation_field2" class="booking_field_input_custom booking_width_90p booking_border_none" <?php if(in_array("reservation_field2",$bookingSettingObj->getMandatoryFields())) { echo 'tmt:required="true" tmt:message="'.$bookingLangObj->getLabel("INDEX_RESERVATION_ADDITIONAL_FIELD2_ALERT").'"'; }?>/> </div> <?php } else if($bookingSettingObj->getReservationFieldType('reservation_field2') == 'textarea') { ?> <div class="booking_float_left booking_margin_r_2p booking_width_98p"> <div><?php echo $bookingLangObj->getLabel("INDEX_RESERVATION_ADDITIONAL_FIELD2"); ?></div> <textarea name="reservation_field2" class="booking_field_input_custom booking_width_98p height_25 booking_border_none" <?php if(in_array("reservation_field2",$bookingSettingObj->getMandatoryFields())) { echo 'tmt:required="true" tmt:message="'.$bookingLangObj->getLabel("INDEX_RESERVATION_ADDITIONAL_FIELD2_ALERT").'"'; }?>></textarea> </div> <?php } ?> <?php } else { ?> <input type="hidden" name="reservation_field2" value="" /> <?php } if(in_array("reservation_field3",$bookingSettingObj->getVisibleFields())) { ?>
Вообще, по идее, если input поменять на select с тем же именем, и в option value писать то, что вводилось от руки, сервер ничего заметить не должен
@Paka можешь строчку 7 удалить и влепить туда select с атрибутом name="reservation_field2" ну а там в option уже в value атрибуте пиши что хочешь в базу чтобы попало.
PHP: <select id="company" name="reservation_field2"> <option value="Стрижка">Стрижка</option> <option value="Бритье">Бритье</option> <option value="Бритье+Стрижка">Бритье + Стрижка</option> </select> Вставил вместо 7 строчки и все завертелось, теперь осталось сделать ее чуть в стиль и покрасивее. Спасибо силе php.ru !