Previously the `$user->team_names` would be cast to an array before the null coalescing operator executed. If the `team_names` field wasn't set in the database, PHP would throw an error before trying to apply the null coalescing operator.
`FILTER_UNSAFE_RAW` doesn't strip HTML tags like `FILTER_SANITIZE_STRING` did, but some of these are being run through `sanitize_text_field` as well, and the others aren't being output or saved to the database.
See https://stackoverflow.com/a/69207369/450127
If a contributor is removed from a pledge, they should be notified of the change. This will send an email to any confirmed contributors letting them know.
* Add contributor management to manage form
* Check `pledge_id` to prevent returning all contributors
* Return a plain text error string – this is used in an alert box, so it can't contain HTML
* Hide confirmation when pledge is a draft
* Only enqueue script if the user is authorized
* Use a unique text-domain, wporg-5ftf
* Fix plugin i18n strings
* Remove unwanted text-domains from WPCS checks and fix missed old text-domains
* Remove type=array from phpcs
* Re-add type=array
* Small WPCS fix
* WPCS: replace var with
This updates the display of contributors into a table view, and adds the ability to add and remove contributors to existing pledges.
The display has been refactored to use JS templates & JSON contributor data– the data is output onto the page when loaded from the server, and rendered when the page finishes loading. Adding & removing contributors now submits to an admin-ajax.php endpoint, which, if successful, return the new list of contributors. This ensures the display is always up to date.
Fixes#3
This includes autofixes, along with some manual fixes; mostly syntax-related. Some `phpcs:ignore` comments were added for overzealous rules that don't apply.
`process_my_pledges_form()` is actually called on page load in `render_my_pledges()`.
So to prevent the unnecessary get_post() queries, let’s just return early if the form wasn’t really submitted.
See #87
- Add a single-pledge view so we can separate out the pending from published
- Update layout and styles of my pledges list
- Adds link and danger button styles
Uses action hooks to capture relevant events as log entries on a per-pledge basis. This provides a running history of a pledge and can be used as an audit log if questions arise about changes to a pledge or there are weird bugs.
Fixes#39
* Theme: Create template part for single pledge
* Plugin: Add functions for handling xprofile data
* Plugin: Add helper function for getting contributor user objects
* Theme: Display aggregated contributor data on single pledge view
* Theme: Add functions, markup, and styles to show team badges
* Theme: Add badge for Test team
* Theme: Add tentative URL for report a pledge link
* Theme: Add support for post thumbnails
* Theme: Add org logo to single pledge view
* Theme: Update `$content_width` to 960
This matches the width of the content in the global header and
the About page.
* Move pledge template to a file used by the template heirarchy
* Clean up some PHPCS errors
* Move pledge structure out to just the list items
* Create file for single pledge styles
* style badge grid into a grid.
* Add a custom image size for the logo
* Update styles
* Un-hide pledges with no confirmed contributors
* Fix content width
This will be more accurate and avoid confusion that could arise if the self-reported "Number of Employees Being Sponsored" didn't match the number of confirmed contributors listed on the pledge.
Having that counted number stored in post meta is still useful, though, so this also adds/updates that number for a pledge whenever a Contributor post changes its status.
Fixes#48
Contributors associated with pledges have a state: they can be confirmed or unconfirmed. They also have some important meta data, namely when they were confirmed. Thus, managing contributor data for pledges is more robust if we treat them as their own post type instead of as a multidimensional array of post meta data.
This also reorganizes some of the functions related to pledges so that things are more consistent between the pledge CPT and the contributior CPT.
Fixes#11