Wpis z mikrobloga

Pytanie do ninja programistów :D
Mam wtyczkę na WP w której jedno pole input jest "text" aby wpisać sobie nazwę/tytuł. Chciałbym to pole ograniczyć do wpisywania tylko kilku nazw i wpadłem na pomysł, że zmienie to pole na dropdown z listą już z góry ustaloną do wyboru.

Czy istnieje sposób na "wstrzyknięcie" w to miejsce innego inputa? Nie ma chyba możliwości nawet edycji tego miejsca z poziomu ftp. Blagam pomóżcie

#programowanie #js #php
  • 72
Zależy od wtyczki, czy ten input jest ładowany z pliku php, czy może z bazy danych? Prawdopodobnie jest generowany w pliku php i pierwsze co musisz zrobić to znaleźć ten kod. Trudno powiedzieć coś więcej, za mało informacji.
@imdejv1: Wtedy można usunąć kod generujący input text i wstawić select z wartościami. Tylko to dużo zależy od wtyczki - czy ten input text jest obsługiwany przez js, może jakaś walidacja tam jest, chodzi o to, aby po zmianie na select js nie sypał błędami. Łatwiej byłoby gdybyś mógł podać nazwę wtyczki.
ew. datalist możesz dołożyć i sprawdzać JSem czy wartość w inpucie występuje w datalist. Ale i tak waliduj na backendzie, bo jak ktoś się uprze ustawić inną wartość, to zrobi to bez problemu
@imdejv1: W przypadku tego pola Dimensions, w katalogu wtyczki jest plik views/product-manager/wcfm-view-products-manage-tabs.php. W linii 109 generowany jest formularz i w linii 110 mamy 'type' => 'text'. Tutaj trzeba zmienić na 'type' => 'select' i dodać 'options' => '$mojeZmienne'. Zmienna ta może wyglądać tak: $mojeZmienne = ['pierwszawartosc' => 'Pierwsza wartosc', 'drugawartosc' => 'Druga wartość']; Nie wiem czy zadziała poprawnie, ale możesz spróbować i zobaczyć jakie błędy się pojawiają.
@imdejv1:

if ($('#_wc_booking_person_types_person_name_0').is(':visible')) { // tutaj sprawdzamy czy jest widoczny input z takim id, żeby na innych podstronach nie sypało błędami
$("#_wc_booking_person_types_person_name_0")
.replaceWith('' +
'Pierwsza wartość' +
'Druga wartość' +
'');
}