WP Manifestindependent plugin directory
manifest / users / wp-jasenrekisteri

Jäsenrekisteri

Wordpress jäsenrekisteri plugin. Jäsenasiat, jäsenluokat, laskutus.

★ 0stars

Install

Download source zip No release zip yet

This is the repository archive. It installs, but the folder name will carry the branch suffix and updates will not flow.

Install straight from GitHub with WP-CLI:

wp plugin install https://github.com/oh6kw/wp-jasenrekisteri/archive/refs/heads/main.zip
No built-in updater. New versions won't appear under Dashboard → Updates. Install new releases yourself, or let Git Updater track the repository.

Jäsenrekisteri – WordPress-lisäosa yhdistyksille

Jäsenrekisteri ja jäsenmaksulaskutus WordPressin hallintapaneeliin suomalaisille yhdistyksille.

Lähetä koko jäsenistölle jäsenmaksulaskut sähköpostilla yhdellä painalluksella, ja tulosta paperilaskut niille, jotka niitä haluavat. Jokainen lasku saa oman suomalaisen viitenumeron, QR-koodin ja pankkiviivakoodin. Tuo maksut pankin tiedostosta, ja ne kohdistuvat oikeille jäsenille viitteen perusteella, vaikka maksaja olisi puoliso tai vanhempi.

Jäsenlista

Kuvissa on keksitty esimerkkiyhdistys. Nimet, jäsennumerot, osoitteet ja puhelinnumerot ovat kuvitteellisia, ja tilinumero on pankkien yleisesti käyttämä esimerkkinumero.

Ominaisuudet

Jäsenet

  • Omat jäsenluokat ja jäsenmaksut, esim. Jäsen 25 €, Nuorisojäsen 10 €, Perhejäsen 10 € ja Kunniajäsen 0 €. Luokat näkyvät jäsenlistassa välilehtinä.
  • 0 €:n luokan jäsenille ei tehdä laskua, mutta he saavat tiedotteet.
  • Haku, lajittelu, joukkotoiminnot (aseta luokka, merkitse eronneeksi, lasku paperilla) sekä jokaisen jäsenen lasku- ja maksuhistoria.
  • Vapaasti nimettävä lisätunniste, esim. Jäsennumero.
  • Omat lisäkentät, esim. Avain (kerhotalon avaimen numero) tai Talkoolistalla. Kenttä voi olla teksti tai valintaruutu, ja sen voi näyttää jäsenlistassa omana sarakkeenaan. Haku kentän nimellä (esim. ”avain”) löytää kaikki, joilla kenttä on täytetty.
  • Eroamispäivä tallentuu, kun jäsen merkitään eronneeksi.
  • Tuonti ja vienti CSV-muodossa (Excel-yhteensopiva). Sarakkeet tunnistetaan otsikoista, ja puhelinnumeroiden etunollat säilyvät.
  • Varoitus mahdollisesta tuplakirjauksesta.
  • Kesken kauden liittyvä jäsen lisätään jäsenlomakkeesta suoraan jo lähetetylle laskulle. Hän saa oman viitteen ja eräpäivän, ja laskun voi lähettää heti.

Laskutus

  • Lasku koko jäsenistölle tai valituille jäsenille. Summa määräytyy jäsenluokan mukaan, ja sitä voi muuttaa laskukohtaisesti.
  • Yksilöllinen viitenumero (7-3-1-tarkiste), josta näkee suoraan laskun ja jäsenen.
  • Siisti HTML-lasku, jossa on EPC QR -koodi, pankkiviivakoodi (versio 4) ja virtuaaliviivakoodi tekstinä. Sähköpostissa on mukana myös tekstiversio.
  • Ennen lähetystä voi esikatsella laskun ja lähettää testilaskun valittuun osoitteeseen.
  • Lähetys tehdään pienissä erissä edistymispalkin kanssa, joten suurikaan jäsenmäärä ei aiheuta aikakatkaisuja. Jo lähetettyjä laskuja ei lähetetä uudelleen.
  • Paperilaskut: jäsenelle voi valita ”Haluaa laskun paperilla”. Hänelle ja jäsenille, joilla ei ole sähköpostia, ei lähetetä sähköpostia, vaan laskun sivulla on oma lista, josta laskut tulostetaan A4-paperille ikkunakuoreen sopiviksi (QR- ja pankkiviivakoodeineen) ja merkitään postitetuiksi. Myös paperiset maksumuistutukset.
  • Maksumuistutukset käsin tai automaattisesti, esim. 14 päivää eräpäivän jälkeen ja enintään 2 kertaa. Rahastonhoitaja saa halutessaan yhteenvedon lähetetyistä muistutuksista.

Maksujen kirjaus

  • Maksut voi tuoda pankista: KTL-viitesiirtoaineisto, camt.054 / camt.053 (XML) tai tiliote CSV-muodossa.
  • Maksut kohdistetaan viitteen perusteella, myös RF-muotoisesta viitteestä. Ennen tallennusta näytetään esikatselu, josta näkee täsmäävät maksut, poikkeavat summat, jo kirjatut maksut ja tuntemattomat viitteet.
  • Samaa maksua ei kirjata kahdesti, koska pankin arkistointitunnus tallennetaan.
  • Merkintä onnistuu myös käsin, yksittäin tai joukkona. Hakukenttä löytää laskun tiliotteen viitteellä.
  • Excel-raportti: yhdellä painalluksella kaikki laskut yhteen Excel-tiedostoon: yhteenveto, kaikki avoimet maksut ja jokainen lasku omalla välilehdellään (kuka on maksanut, kuka ei, maksupäivät ja maksajat).

Vuosiraportti ja muutosloki

  • Vuosiraportti vuosikokoukseen: jäsenmäärät jäsenluokittain vuoden alussa ja lopussa, liittyneet ja eronneet, vuoden laskut (laskutettu, maksettu, avoinna) jäsenluokittain sekä vuoden aikana kertyneet jäsenmaksut. Tulostettavissa ja vietävissä Exceliin.
  • Muutosloki: kuka muutti mitä ja milloin – jäsenten tiedot vanha → uusi, maksumerkinnät, lähetykset, postitukset, laskut, asetukset, tiedotteet, tuonnit ja viennit. Jäsenen sivulla näkyy hänen oma muutoshistoriansa. Säilytysaika valitaan asetuksista.

Tiedotteet

  • Sähköposti kaikille jäsenille, yhdelle jäsenluokalle tai viimeisimmän laskun maksamattomille.
  • Viestissä voi käyttää paikkamerkkejä, kuten {etunimi} ja {jasenluokka}. Ne lisätään tekstiin klikkaamalla. Jokainen saa oman viestinsä, eivätkä osoitteet näy muille.

Kuvat

Laskun lähetys ja maksutilanne Lasku: lähetys, muistutukset ja maksutilanne. Maksajan nimi ja poikkeava summa näkyvät. Lasku sähköpostissa Jäsenen saama lasku: jäsenluokka, viite, QR-koodi ja pankkiviivakoodi.
Uusi lasku Uusi lasku: summat jäsenluokittain. Luokat, joiden jäsenmaksu on 0 €, jätetään laskutuksesta pois. Maksujen tuonti Maksujen tuonti pankista: esikatselu ennen kirjausta.
Jäsenen tiedot Jäsenen tiedot sekä kaikki laskut ja maksut. Asetukset Asetukset: jäsenluokat ja automaattinen muistutus.
Tiedote Tiedote koko jäsenistölle tai yhdelle luokalle. Laskut Laskut: maksukertymä ja maksujen tuonti.
Paperilaskut Paperilaskut laskun sivulla: tulosta, laita kuoreen ja merkitse postitetuksi. Tulostettava paperilasku Tulostettava lasku ikkunakuoreen (C5 tai DL).
Vuosiraportti Vuosiraportti: jäsenmäärät luokittain ja jäsenmaksut. Muutosloki Muutosloki: kuka muutti mitä ja milloin.
Omat lisäkentät Omat lisäkentät asetuksissa, esim. avaimen numero.
Uusi jäsen kesken kauden Kesken kauden liittyvä jäsen lisätään jo lähetetylle laskulle, ja hän saa oman eräpäivän. Tietoja ja palaute Tietoja ja palaute: palautelomake ja Ko-fi.

Asennus

  1. Lataa uusin jasenrekisteri.zip julkaisuista (Releases).
  2. Valitse WordPressissä Lisäosat → Lisää uusi → Lataa lisäosa ja anna zip-tiedosto.
  3. Ota lisäosa käyttöön. Valikkoon ilmestyy Jäsenrekisteri.

Käytä julkaisun jasenrekisteri.zip-tiedostoa, älä GitHubin vihreän Code-painikkeen zip-latausta. Julkaisun zipissä lisäosan kansion nimi on jasenrekisteri, jolloin myöhemmät päivitykset korvaavat vanhan version oikein.

Päivitys: lataa uusi zip samalla tavalla. WordPress tarjoaa nykyisen version korvaamista, ja tietokanta päivittyy automaattisesti. Ota varmuuskopio ennen päivitystä.

Käyttöönotto

  1. Asetukset: yhdistyksen nimi, tilinumero (IBAN, ohjelma tarkistaa sen), lähettäjän sähköposti ja vastausosoite (esim. rahastonhoitaja).
  2. Jäsenluokat: lisää luokat ja niiden jäsenmaksut. Jos jonkin luokan jäseniltä ei peritä maksua, aseta sen jäsenmaksuksi 0 €.
  3. Jäsenet: tuo CSV-tiedostosta (Jäsenet → Tuo CSV, malli ladattavissa) tai lisää käsin. Jos jäseniä jää ilman luokkaa, aseta luokka joukkona välilehdellä Ilman jäsenluokkaa.
  4. SMTP: asenna esim. WP Mail SMTP tai FluentSMTP, jotta viestit lähtevät yhdistyksen oikean sähköpostitilin kautta eivätkä päädy roskapostiin.
  5. Kokeile: tee lasku ja lähetä testilasku itsellesi. Skannaa QR-koodi pankkisovelluksella, mutta älä hyväksy maksua.

Jäsenmaksukierros käytännössä

  1. Laskutus → Uusi lasku, esim. ”Jäsenmaksu 2027”. Tarkista summat ja eräpäivä.
  2. Esikatsele ja lähetä testilasku itsellesi, sitten Lähetä laskut.
  3. Lataa verkkopankista viitesiirtoaineisto tai camt.054 ja tuo se kohdasta Laskutus → Tuo maksut pankista. Toista tarvittaessa – samaa maksua ei kirjata kahdesti.
  4. Eräpäivän jälkeen maksamattomat saavat muistutuksen automaattisesti tai yhdellä painalluksella.
  5. Paperilaskut: laskun sivun kohdassa Paperilaskut ovat jäsenet, jotka haluavat laskun paperilla, ja jäsenet ilman sähköpostia. Valitse Tulosta postittamattomat, tulosta A4-paperille (marginaalit: ei mitään tai oletus, skaalaus 100 %), taita reunan merkkien kohdalta ja laita ikkunakuoreen. Merkitse sitten postitetuksi tulostussivun painikkeella. Erääntyneille voi tulostaa paperisen muistutuksen samalla tavalla.
  6. Vuosikokous: Jäsenrekisteri → Vuosiraportti näyttää jäsenmäärät ja jäsenmaksukertymän valitulta vuodelta. Tulosta tai vie Exceliin.
  7. Kesken kauden liittyvä jäsen: kun lisäät uuden jäsenen, lomakkeessa on kohta Jäsenmaksu jo tehdyltä laskulta. Valitse lasku, tarkista summa (osan kaudesta voi laskuttaa pienemmällä summalla) ja tallenna. Jäsen saa oman viitteen ja vähintään kolmen viikon eräpäivän, ja lasku lähtee heti sähköpostilla. Saman voi tehdä myöhemmin jäsenen muokkaussivulta. Laskun sivun painike Lisää laskulle uudet jäsenet lisää kerralla kaikki laskulta puuttuvat maksavat jäsenet.

Pankkitiedostot

Muoto Mistä saa Huomioita
KTL-viitesiirtoaineisto (.txt) Verkkopankin viitesiirto tai saapuvat viitemaksut Perinteinen suomalainen muoto, kaikki pankit
camt.054 (.xml) Verkkopankin viiteaineisto XML / Saapuvat maksut ISO 20022, maksajan nimi skandeineen
camt.053 (.xml) Verkkopankin XML-tiliote Vain saapuvat maksut käsitellään
Tiliote CSV Verkkopankin tilitapahtumat CSV-muodossa Sarakkeet tunnistetaan otsikoista (viite ja summa pakollisia)

Jos oman pankkisi tiedosto ei aukea, avaa issue ja liitä mukaan esimerkki, josta henkilötiedot on poistettu.

Maksukoodit

  • EPC QR -koodi (European Payments Council, EPC069-12): moni suomalainen pankkisovellus lukee sen kamerasta, jolloin saaja, tilinumero, summa ja viite täyttyvät valmiiksi. QR-koodissa viite on RF-muodossa (ISO 11649), ja pankit kohdistavat sen samaan viitteeseen.
  • Pankkiviivakoodi, versio 4 (Finanssiala ry:n opas): Code 128 C -viivakoodi kuvana.
  • Virtuaaliviivakoodi tekstinä: sen voi kopioida pankkisovellukseen.

Asetuksista voi valita, näytetäänkö QR-koodi, viivakoodi, molemmat vai ei kumpaakaan. Kuvat upotetaan sähköpostiin, joten ne näkyvät ilman ulkoisia latauksia. Kuvien tekemiseen ei tarvita PHP:n GD-laajennusta.

Tietosuoja ja tietoturva

Jäsenrekisteri sisältää henkilötietoja. Rekisterinpitäjä on yhdistys, ja sen tulee laatia jäsenrekisteristä tietosuojaseloste.

  • Lisäosaa voivat käyttää vain ylläpitäjät (manage_options).
  • Tallentavat toiminnot on suojattu CSRF-tunnisteilla (nonce). Tietokantakyselyt ovat valmisteltuja, ja kaikki tulostettava tieto escapataan.
  • CSV-vienti estää kaavojen suorittamisen taulukkolaskennassa.
  • Muutosloki kirjaa jokaisen muutoksen tekijän ja ajan. Koska loki sisältää henkilötietoja (esim. vanhoja osoitteita), vanhat merkinnät poistetaan automaattisesti asetuksissa valitun säilytysajan jälkeen (oletus 2 vuotta). Myös jäsenrekisterin viennit kirjataan lokiin.
  • Tiedot pysyvät omalla palvelimellasi. Lisäosa ei lähetä tietoja ulkopuolisille palveluille. Ainoa poikkeus on palautelomake: se lähettää vain itse kirjoittamasi viestin ja halutessasi versiotiedot.
  • Lisäosan poistaminen: kun lisäosa poistetaan käytöstä, kysytään, säilytetäänkö tiedot vai poistetaanko kaikki taulut ja asetukset, jos lisäosa myöhemmin poistetaan kokonaan. Valinnan voi vaihtaa myös asetuksista. Oletuksena tiedot säilyvät.

Poiston kysely

Vaatimukset

  • WordPress 5.8 tai uudempi
  • PHP 7.4 tai uudempi
  • MySQL / MariaDB
  • Toimiva sähköpostin lähetys (SMTP-lisäosa suositeltava)
  • Automaattiset muistutukset käyttävät WP-Cronia, joka käynnistyy sivuston käyntien yhteydessä. Hiljaisella sivustolla voi ottaa käyttöön palvelimen cronin.

Rakenne

jasenrekisteri.php          Lisäosan pääsivu, valikot ja kytkennät
uninstall.php               Tietojen poisto lisäosan poiston yhteydessä (jos valittu)
includes/
  install.php               Tietokantataulut ja versiopäivitykset
  helpers.php               Asetukset, viitenumero, IBAN, virtuaaliviivakoodi, CSV, sähköposti
  members.php               Jäsenlista, jäsenlomake, joukkotoiminnot
  import-members.php        Jäsenten CSV-tuonti
  invoices.php              Laskut, lähetys ja maksumerkinnät
  import-payments.php       Pankkitiedostojen (KTL, camt, CSV) tuonti ja kohdistus
  paycodes.php              EPC QR -koodi, pankkiviivakoodi, RF-viite
  email-templates.php       Sähköpostin ja laskun HTML-pohja
  mailer.php                Tiedotteet
  cron.php                  Automaattiset muistutukset
  settings.php              Asetussivu
  print.php                 Tulostettavat paperilaskut ja postitusmerkinnät
  report.php                Vuosiraportti (näyttö ja Excel)
  log.php                   Muutosloki
  export-xlsx.php           Laskujen Excel-raportti
  xlsx.php                  Excel-kirjoitin (ei ulkoisia kirjastoja)
  about.php                 Tietoja ja palaute -sivu
  lib/jr-qrcode.php         QR-koodikirjasto (MIT)
assets/                     Hallinnan CSS ja JavaScript

Palaute ja kehitysehdotukset

Kehitysehdotukset ja vikailmoitukset ovat tervetulleita:

Tarjoa kahvit

Jos lisäosasta on hyötyä yhdistyksellesi, voit tarjota kehittäjälle kahvit: ko-fi.com/oh6kw ☕ Kiitos!

Tekijät

  • Jarno Jaskari, OH6KW: alkuperäinen lisäosa (versio 2.6), ideointi, vaatimukset, testaus ja ylläpito
  • Claude (Anthropic): jatkokehitys yhdessä Jarnon kanssa versiosta 3.0 alkaen

Muutokset

Katso CHANGELOG.md.

Lisenssi

GNU Affero General Public License v3.0 (AGPL-3.0-or-later) © Jarno Jaskari OH6KW

Saat käyttää, muokata ja jakaa lisäosaa vapaasti. Jos jaat muokatun version tai tarjoat sitä palveluna verkon yli, myös muokattu lähdekoodi on annettava saataville saman lisenssin ehdoin.

QR-koodien tekoon käytetään Kazuhiko Arasen qrcode-generator-kirjastoa (MIT-lisenssi, includes/lib/LICENSE-qrcode.txt).


In English

Jäsenrekisteri is a WordPress membership register and dues-invoicing plugin for Finnish associations. It manages members, membership classes and custom fields, emails individual invoices (or prints window-envelope paper invoices) with Finnish reference numbers, EPC QR codes and Finnish bank barcodes, imports payments from bank files (KTL, camt.054/053, CSV) and matches them by reference, sends reminders and newsletters, produces an annual report for the AGM and keeps an audit log of all changes. The user interface is in Finnish. License: AGPL-3.0-or-later. Feedback: jarno.jaskari@gmail.com · Support: ko-fi.com/oh6kw