Wsparcie » Zaawansowane » Własna wtyczka, opcje tablica 3d, dodawanie, kasowanie

  • Zrobiłem sobie wtyczkę na której się w sumie uczę obecnie.

    Utworzyłem stronę opcji, menu itd.
    Na tym etapie wszystko gra.

    Dane ustawień wtyczki są przechowywane w tablicy i mają taką formę:

    Array ( [licencja] => Array (
    [0] => Array ( [cena_lic] => 5,00  [opis_lic] => opis 1 treść )
    [1] => Array ( [cena_lic] => 15,00 [opis_lic] => opis 2 treść )
    [3] => Array ( [cena_lic] => 6,00  [opis_lic] => opis 3 treść )
    [4] => Array ( [cena_lic] =>       [opis_lic] => )
    [5] => Array ( [cena_lic] =>       [opis_lic] => )
     )
    [pod_vat] => 23
    [rach_pap] => 4,00 )

    jak widać dodało mi puste wartości i dodatkowo klucze tablicy nie są po kolei w sensie takim, że zjadło klucz 2. Czyli powinno być 0,1,2,3,4.

    Klucz 4 i 5 w ogóle nie powinien istnieć bo jest pusty. Pusta wartość powinna być dopuszczalna tylko dla [opis_lic].

    [licencja] jest wyświetlana w pętli w panelu administratora jako ustawienia wtyczki (pola input i textarea), i chcę mieć możliwość dodawana nowych wpisów do tablicy, czyli nowych cen i opisów licencji.
    Więc utworzyłem puste pola poza pętlą input i textarea, które dodają wartości do tablicy.
    Ich id określiłem poprzez zliczenie ilości kluczy w tablicy i do tego dodałem 1. Nie wiem czy to prawidłowy sposób.

    I o ile to dodawanie działa, tak mam problem, że potrafi mi dodać puste wpisy, jeśli do pola input i textarea nic nie wpiszę, albo przeładuję stronę.

    W jaki sposób temu zapobiec? Czy mam coś zrobić w funkcji validującej register_setting ($sanitize_callback) ?

    register_setting( $option_group, $option_name, $sanitize_callback );

    Czyli w skrócie.
    Chcę dodawać nowe opcje, móc je edytować i kasować. Z kasowaniem tez nie wiem jak zrobić.
    Często widzę, że wpis do tablicy jest kasowany gdy wymażemy dane z pola input. Wówczas funkcja robi tak, że jeśli brak wartości to kasuje odpowiedni klucz tablicy. Ewentualnie dodatkowy mały przycisk po prawej stronie każdego wiersza.
    Mam nadzieję że w miarę klarownie to opisałem:)

Viewing 1 replies (of 1 total)
  • Mam nadzieję że w miarę klarownie to opisałem:)

    Płonna nadzieja.

    Poza tym w Twoim niezrozumiałym dla mnie wywodzie widać podstawowe braki w PHP. np. tablice asocjacyjne nie maja kolejności.

Viewing 1 replies (of 1 total)
  • Temat ‘Własna wtyczka, opcje tablica 3d, dodawanie, kasowanie’ jest zamknięty na nowe odpowiedzi.