=== Kleingarten ===
Contributors: frickemedia
Tags: kleingarten, schrebergarten, garten, allotment gardening
Requires at least: 6.0
Tested up to: 7.0
Requires PHP: 8.0
Stable tag: 2.0.1
License: GPLv2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html

Build a better website for your allotment gardening club!

== Description ==

Many allotment garden associations have a website. And many of these websites offer practically nothing to the members of the association, because they contain little more than a friendly Welcome. With Kleingarten you build a website that really adds value to your association and its members.

== Installation ==

Installing "Kleingarten" can be done either by searching for "Kleingarten" via the "Plugins > Add New" screen in your WordPress dashboard, or by using the following steps:

1. Download the plugin via WordPress.org
1. Upload the ZIP file through the 'Plugins > Add New > Upload' screen in your WordPress dashboard
1. Activate the plugin through the 'Plugins' menu in WordPress

== Screenshots ==

1. Build a better website for your gardening friends.

== Frequently Asked Questions ==

= What is Kleingarten for? =

This plugin extends WordPress with useful functions for allotment garden associations.

- Submit meter readings online!
- Bill your members online!
- Build handy user profiles for your members!
- Keep your members up to date with automatic notifications!
- ...

== Credits ==

This plugin uses DOMPDF (https://github.com/dompdf/dompdf), a PHP library for generating PDF documents from HTML. DOMPDF is licensed under the GNU Lesser General Public License (LGPL) v2.1 or later. You can find the source code of DOMPDF here wp-content/plugins/kleingarten/includes/lib/dompdf (after installing Kleingarten) or here https://github.com/dompdf/dompdf. In accordance with the LGPL, this plugin uses DOMPDF as a library without changing its behaviour. The only change made to the bundled copy is a direct-file-access guard in autoload.inc.php, as required for plugins hosted on WordPress.org. Any use of this plugin is subject to the terms of the LGPL regarding DOMPDF. For more information on the LGPL v2.1 license, see: https://www.gnu.org/licenses/old-licenses/lgpl-2.1.html

== Changelog ==

= 2.0.1 =
* FIXED: Creating a meter for an existing user ran into an error instead of creating the meter.
* FIXED: Creating a meter used a function that only exists since WordPress 6.7, although Kleingarten supports WordPress 6.0.
* TWEAK: Meter titles are sanitized before they are stored.
* TWEAK: Translations are left to WordPress instead of being loaded by the plugin, which is unnecessary since WordPress 4.6.
* TWEAK: Cleared up the remaining Plugin Check notices.

= 2.0.0 =
ATTENTION: This update changes the way Kleingarten stores the connections between its data. Meter readings, meter reading submission tokens, meter assignments, task participations and invoice items are no longer stored as post meta but as posts of their own, each one linked to the meter, plot, task or invoice it belongs to. Existing entries are NOT carried over. Backing up your data before installing is strongly recommended, and expect to enter meter readings, meter assignments, task participations and invoice items again.
Whats new?
* Rebuilt all data dependencies on a child post structure. That makes them properly queryable and sortable and is the groundwork for upcoming features.
* SECURITY: Invoice items are handed through the form as JSON now. The previous format was read back with unserialize(), which is a known door for PHP object injection.
* SECURITY: Redirects use wp_safe_redirect(), and the uninstall routine no longer writes to WordPress' global scope.
* SECURITY: Removed an unused PDF helper class that allowed DOMPDF to load remote resources.
* FIXED: Every save of a plot assigned its meters a second time.
* FIXED: Adding billing information to a meter reading recreated the reading instead of updating it.
* FIXED: Tokens that were still active when they expired could never be deleted.
* FIXED: Invoice item titles came back with quotes and ampersands rewritten as HTML entities.
* FIXED: A failed invoice publication left the invoice items behind instead of resetting the invoice.
* FIXED: Plot title printed twice in the "Associated parcels" column of the meter list when a meter belonged to several plots.
* FIXED: Broken table cell in the token list on the edit meter screen.
* FIXED: "Array to string conversion" warning on the edit plot screen whenever no plot area was set.
* FIXED: Three AJAX handlers answered a failed security check with a bare "Busted!" instead of a proper error response.
* TWEAK: Deleting a meter, plot, task or invoice now cleans up everything that belonged to it.
* TWEAK: Invoice numbering no longer loads invoice data while saving posts of other post types.
* TWEAK: Reformatted the code base along the WordPress Coding Standards and added a phpcs ruleset.
* TWEAK: Files are written through the WordPress filesystem API.
* Tested against WordPress 7.0 and PHP 8.5.
* Minor bugfixes.

= 1.4.3 =
* FIXED: Enable plugin credits setting not working.
* Minor bugfixes.

= 1.4.2 =
* TWEAK: Plot title added to PDF invoice.
* TWEAK: Layout of PDF invoice optimized.
* FIXED: Call to logging function on edit meter screen which is undefined in productive environment.
* FIXED: Item comment missing on PDF invoice.
* FIXED: Some text on invoice is not internationalized.
* Minor bugfixes.

= 1.4.1 =
* Moved available positions setting to members tab.
* FIXED: Meter reading submission box missing on edit meter screen.
* FIXED: Expiry date of added token only displayed after reloading page.
* FIXED: PDF invoice lacks currency.
* Minor bugfixes.

= 1.4.0 =
With this update the plugin receives a great expansion. Backing up your data before installing is strongly recommended.
Whats new?
* Added invoice feature: Bill club membership, plot lease, meters, and whatever you want.
* Cleaned up settings area.
* Minor bugfixes and changes to increase comfort.

= 1.3.3 =
* Incorrect labelling in connection with membership status corrected.
* Minor bugfixes.

= 1.3.2 =
* Added membership status to user properties.
* FIXED: Meters are displayed twice under certain conditions.
* FIXED: Bug preventing gardeners from saving their profile settings.
* Minor bugfixes.

= 1.3.1 =
* Added security measures to login form shortcode.
* Added caching here and there to increase performance.
* Minor bugfixes.

= 1.3.0 =
* ATTENTION: Moved tools to a separate plugin to make Kleingarten more lightweight.
* Minor bugfixes.

= 1.2.2 =
* ATTENTION: Removed headers from membership shortcodes. Please add headlines and descriptions on your own!
* Added new shortcode [kleingarten_private_content], 
* Fixed: Missing punctuation in login shortcode.
* Fixed: Meter reading date not saved correctly.
* Minor bugfixes.

= 1.2.1 =
* Now it is possible to add custom task status. See settings to activate custom status for tasks.
* Fixed: "Tested up to" in kleingarten.php still 6.7 instead of 6.8.
* Fixed: Updated instance to 1.2.1 instead of still 1.1.8.
* Minor bugfixes.

= 1.2.0 =
* Introducing Tasks: Now you can manage projects and tasks on your website!
* Minor bugfixes.

= 1.1.8 =
* Now it is possible to reactivate tokens that have been deactivated before.
* Added a link to logo.
* Register form antispam function now prints a note, if challenge and response are not configured.
* Minor bugfixes.

= 1.1.7 =
* Added a very simple antispam function to register form.
* Minor bugfixes.

= 1.1.6 =
* Fixed: User registration from backend does not save Kleingarten custom fields.
* Fixed: Used meter reading submission tokens are not marked as used but as expired.
* Fixed: Deleted or trashed plots are not unlinked from gardeners.
* Fixed: Register form does not insist on first and last name.
* Fixed: No notification mail sent on new private post.
* Fixed: New post notification mail are send to pending users.
* Fixed: Login form redirects to wp-login.php if a field is left empty.
* Fixed: Tool for creating multiple tokens creates expired tokens.
* Removed pending users from list of users who liked a post (admin area).
* Minor bugfixes.

= 1.1.5 =
* This version is a programmatically make over: It is a huge enabler in terms of security, stability and performance!
* Minor bugfixes.

= 1.1.4 =
* New tool to import meter readings from a CSV file.
* Minor bugfixes.

= 1.1.3 =
* 2025-01-30
* New shortcode to allow members to manage their plot and submit meter readings.
* Minor bugfixes.

= 1.1.2 =
* Introducing Kleingarten Tools including first tools: Create plots as batch, create meter tokens as batch and get a CSV file.
* Minor bugfixes.

= 1.1.1 =
* Renamed and rearranged settings for better clarity.
* Added optional credits to footer.
* Added mandatory date field to front meter reading submission form (submission by token).
* Bugfix on notifications: Send mail on privately published posts.
* Bugfix on private posts: Prevent 404 for not logged in visitors trying to view private posts.
* Minor bugfixes.

= 1.1.0 =
* Added meters: Now you can add supply meters to plots, save meter readings and allow gardeners to submit readings!
* Moved likes meta box from beneath post content to sidebar.
* Defined useful defaults for some settings.
* Minor changes and improvements.

= 1.0.3 =
* 2024-11-14
* Bugfix to post type initialisation to avoid warnings regarding the new handling of internationalisation in WordPress 6.7.

= 1.0.2 =
* 2024-11-13
* Updated "tested up to" to 6.7. No other changes.

= 1.0.1 =
* 2024-11-02
* Updated "tested up to" to 6.6.2. No other changes.

= 1.0.0 =
* 2024-08-01
* Initial release

== Upgrade Notice ==

= 2.0.0 =
This release rebuilds how Kleingarten stores the links between its data. Meter readings, tokens, meter assignments, task participations and invoice items are NOT carried over and have to be entered again. Back up your database before updating.
