W dniu 13.07.2020 12:46, Paweł Sienkiewicz napisał(a):
Witam,
Witam,
implementuję rozszerzenie wtyczki BillTech służącej do rozliczania opłat za internet z zewnętrznym systemem płatności. Wtyczka ma za zadanie przetworzyć dane z faktury w momencie ich tworzenia oraz na ich podstawie dokonać zapisu w specjalnej tabeli w bazie danych. Z przeprowadzonej analizy dowiedziałem się, że opłaty są wystawiane przez frontend w sekcji Finanse (nowa faktura/nota odsetkowa/...) oraz przez skrypt lms-payments.php na podstawie subskrypcji.
Jako kandydatów na płatności rozpatrywałem rekordy z tabel cash, invoicecontents lub liabilities ale używając skryptu genfake w dwóch ostatnich nic się nie znajduje pomimo, że faktury się wygenerowały, więc skupiam się na tabeli cash.
'cash' - operacje finansowe, 'invoicecontents' - pozycje faktur - mają pewne informacje, których nie posiadają powiązane z nimi rekordy w 'cash' np. liczba sztuk.
W związku z powyższym zastanawiam się, w których miejscach w kodzie mógłbym się wpiąć, tak żeby złapać wystawianie wszystkich płatności, które pojawiają się w userpanelu i są do opłacenia przez użytkowników? Czy istnieje odpowiedni hook do takiego zastosowania czy będzie trzeba go stworzyć? Dla lms-payments.php mamy "payments_before_assignment_loop", który wydaje
Ten hook służy raczej do tego, żeby móc dodać z zewnątrz nowe subskrypcje, które potem uwzględni główna pętla skryptu i wygeneruje na ich podstawie obciążenia.
się być stworzony właśnie w tym celu ale dane nie są jeszcze dodane do bazy danych, więc to może generować problemy, gdy skrypt się wywali. Z drugiej strony zapisywanie w bazie faktur dodawanych przez frontend dzieje się w wielu miejscach i nie widzę jednego zbiorczego miejsca. Dotychczas szukałem najlepszego miejsca w kodzie poprzez wyszukiwania zapytań SQL na tabeli cash.
Co chcesz dokładnie uzyskać? Ze strzępków informacji wyobraziłem sobie sytuację w której chcesz przechwytywać w jakimś celu wszystkie generowane obciążenia (?) i coś z nimi robić? Co za dane określone frazą "ich podstawie dokonać zapisu w specjalnej tabeli w bazie danych".
Pozdrawiam, Paweł