Releases: S-FX-com/WPICA-Community
Release list
v1.13.2
v1.13.1
Rebrand plugin display name to WPICA Community
Rename all user-facing branding from 'Blt Community' to 'WPICA Community', dedicating the plugin to the West Point Island Civic Association. Internal identifiers are intentionally unchanged for compatibility: the blt-community.php entry file and plugin basename (renaming would deactivate the plugin on update), cmm_/CMM_ prefixes and stored option keys, text domain, and the GitHub updater repo/slug.
Bump version to 1.13.1.
https://claude.ai/code/session_01MQaWK1oZnrX9GjowrBy4Fs
Merged from #38 by @sfxdotcom.
v1.13.0
Add PayPal Redirect payment mode to Membership Form settings
New payment mode on Settings → Membership Form: after submit the member sees the confirmation message plus a pulsing REDIRECTING FOR PAYMENT banner, then is redirected to a configurable PayPal URL after an adjustable delay (1–60s, default 5s). The redirect URL supports {amount}, {email}, {first_name}, {last_name}, {address}, and {home_id} placeholders (URL-encoded), with a no-JS fallback link.
Bump version to 1.13.0.
https://claude.ai/code/session_01MQaWK1oZnrX9GjowrBy4Fs
Merged from #37 by @sfxdotcom.
v1.12.3
Center step-1 hero icon and constrain field + status card to 50%
- .cmm-mf-hero had justify-content: center but never pinned flex-direction, so Bricks' default flex-direction: column made justify-content center the icon vertically instead of horizontally, leaving the pin pinned to the left of the panel content area. Force flex-direction: row + align-items: center.
- Step 1 is a single-field step, so constrain the Street Address label and the status card to 50% panel width and align-self: center so they sit centered, matching the request. Scoped via [data-step="1"] so other steps are unaffected.
- The <=760px media query drops the 50% width so the field and card fill the panel on mobile.
Bump version to 1.12.3.
Merged from #36 by @sfxdotcom.
v1.12.2
Fix asterisk wrap, stacked buttons, and collapsed field widths
Three theme/structure issues reported on step 3 (and shared across steps), all rooted in how the form's flexbox interacts with Bricks' default flex rules:
-
Required asterisk dropped to its own line. The label is a flex column, so the bare "First Name" text node and the * became separate stacked flex items. Wrap the visible label text and its required marker in a single .cmm-mf-label-text span so they render inline on one line. Every label in the template now uses this wrapper; the label's own font styling moves to .cmm-mf-label-text.
-
Back / Continue buttons stacked vertically. .cmm-mf-actions set display: flex and justify-content: center but never pinned flex-direction, so Bricks' default flex-direction: column won. Force flex-direction: row !important (the <=760px media query still switches to column-reverse for mobile).
-
Fields collapsed to ~half width (e.g. Street Address, the First/Last/Mobile grid) with dead space on the right. The flex-column containers (.cmm-mf, .cmm-mf-panel, .cmm-mf-section, .cmm-mf-new-account, .cmm-mf-label) never set align-items, so the theme's align-items: flex-start/center shrank children to content width instead of stretching. Force align-items: stretch !important and width: 100% on those containers and the grid rows.
Also wrap the directory-checkbox caption in a and force the checkbox row to flex-direction: row so the box and label stay inline.
Bump version to 1.12.2.
Merged from #35 by @sfxdotcom.
v1.12.1
v1.11.2
Switch form layout to flex column + gap so spacing is parent-owned
The previous attempts to control vertical spacing via child margin with !important kept losing to theme rules (e.g. .entry-content >
-
-
- { margin: 2em !important }) because of selector specificity. Margin is a property of the child, so the theme always had a path to inflate it.
-
Move the entire form to flex column with gap:
- .cmm-mf is now display: flex; flex-direction: column; gap: var(--cmm-mf-frame-gap) (14px). This controls spacing between the stepper and the visible panel.
- .cmm-mf-panel is display: flex; flex-direction: column; gap: var(--cmm-mf-gap) (10px). Every field inside a panel — heading, hint, label, status card, account feedback, actions — is a direct child, and the gap is the ONLY source of vertical spacing between them.
- .cmm-mf-new-account is also flex column with gap, so the username/password labels and their feedback divs share the same rhythm.
- All direct children of those containers have margin: 0 !important. With flexbox
gap, the theme can no longer reach in via child margin to inflate the spacing.
Selectors are now consistently prefixed with .cmm-mf (e.g. .cmm-mf .cmm-mf-panel instead of bare .cmm-mf-panel), which bumps specificity from 0,1,0 to 0,2,0 — past common theme rules like .entry-content .wp-block-foo.
Hidden form inputs are now explicitly display: none so they don't count as flex items.
Bump version to 1.11.2.
Merged from #33 by @sfxdotcom.
v1.11.1
Force every spacing rule with !important and rephrase inactive status
Theme rules like .entry-content > * + * { margin: 2em } and generic h3 { margin-top: 3em } were still winning specificity battles against the previous reset and inflating the gaps between fields and section headings into the 80-100px range.
CSS changes:
- !important on every margin and padding rule across the form, plus an explicit
.cmm-mf > * + * { margin-top: 0 }style guard against theme sibling-spacing rules (.cmm-mf-panel > * + *, etc.). - --cmm-mf-gap tightened from 14px to 10px so the default rhythm is visibly tight. A new --cmm-mf-section-gap (14px) is reserved for future section spacing if needed.
- h3 margin reduced from 18px/10px to 14px/8px.
- Panel padding reduced from 22px/24px to 18px/20px.
- Action row uses gap: 10px and 12px top padding.
- All status card / feedback / username / password meter elements get explicit
margin: 0so they don't inherit theme margins.
JS change:
- Renamed the inactive-home status headline from "This address is available." to "Dues are still open." per request.
Bump version to 1.11.1.
Merged from #32 by @sfxdotcom.
v1.11.0
Plugin-owned form layout with themeable surface via CSS variables
Refactor the membership form CSS so the plugin owns layout and the site owns the brand. Previously every theme styled
/
// differently, leaving the form looking inconsistent (centered labels, narrow inputs, small-caps section headings, stacked buttons, etc.) on Bricks + Astra.
What changed in the CSS:
-
New scoped reset on .cmm-mf that forces text-align: left, kills text-transform / font-variant / letter-spacing on h2/h3, and resets inputs/textareas/selects/buttons to consistent display + width + padding + font + line-height. !important is used on the layout axis because page-builder themes will otherwise win specificity battles.
-
Brand surface is exposed as CSS custom properties on .cmm-mf: --cmm-mf-accent, --cmm-mf-accent-hover, --cmm-mf-text, --cmm-mf-label, --cmm-mf-muted, --cmm-mf-required, --cmm-mf-bg, --cmm-mf-bg-soft, --cmm-mf-border, --cmm-mf-border-soft, --cmm-mf-radius, --cmm-mf-radius-input, --cmm-mf-gap, --cmm-mf-font. Admins re-skin by overriding these instead of fighting layout.
-
Consistent vertical rhythm: every field, every row, every checkbox uses the same --cmm-mf-gap (default 14px) for margin-bottom, so the form is evenly spaced top to bottom.
-
Equal-width columns: .cmm-mf-row uses 1fr 1fr so paired fields balance. The City/State/Postal row uses 1fr 90px 130px (City flexes, State is the exact width of a 2-char code, Postal Code fits ZIP+4).
-
Status card, account feedback, username feedback, and password meter all collapse to zero height when empty, so reserved space doesn't pad out the form.
What changed elsewhere:
-
Settings -> Membership Form gains a Custom CSS textarea. Admins can paste rules that override the form's appearance without forking the plugin. Saved with wp_strip_all_tags so a stray <script> can't get served to visitors.
-
CMM_Membership_Form::enqueue_assets() pushes the custom CSS through wp_add_inline_style so it rides the existing stylesheet handle and loads after the plugin CSS, winning the cascade.
Bump version to 1.11.0.
Merged from #31 by @sfxdotcom.