You've already forked wc-tier-and-package-prices
Update CLAUDE.md with v1.2.4 learnings and CSS troubleshooting guide
Added comprehensive CSS specificity documentation from v1.2.4 bugfixes: - CSS Specificity Issues section documenting table border and help-tip positioning problems - Detailed troubleshooting guide for WooCommerce CSS overrides - Solution patterns for table styling and float-based layouts - General rules and diagnostic steps for CSS issues Updated: - Last Updated date to 2025-12-30 - Roadmap section to mark v1.2.4 bugs as completed - Moved future enhancements to v1.2.5+ section Key learnings documented: - WooCommerce core CSS requires !important flags for overrides - Float-based layouts should be replaced with flexbox for precise control - Table borders require comprehensive targeting of all structural elements - border-collapse: collapse is essential for borderless tables 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
120
CLAUDE.md
120
CLAUDE.md
@@ -1,6 +1,6 @@
|
|||||||
# WooCommerce Tier and Package Prices - AI Context Document
|
# WooCommerce Tier and Package Prices - AI Context Document
|
||||||
|
|
||||||
**Last Updated:** 2025-12-29
|
**Last Updated:** 2025-12-30
|
||||||
**Current Version:** 1.2.4
|
**Current Version:** 1.2.4
|
||||||
**Author:** Marco Graetsch
|
**Author:** Marco Graetsch
|
||||||
**Project Status:** Production-ready WordPress plugin
|
**Project Status:** Production-ready WordPress plugin
|
||||||
@@ -305,6 +305,41 @@ Location: includes/class-wc-tpp-cart.php:233
|
|||||||
- **Fix:** Changed method signature to accept `WC_Product $product` instead of `$cart_item` array
|
- **Fix:** Changed method signature to accept `WC_Product $product` instead of `$cart_item` array
|
||||||
- **Status:** FIXED in v1.1.20
|
- **Status:** FIXED in v1.1.20
|
||||||
|
|
||||||
|
### CSS Specificity Issues (v1.2.3 → v1.2.4)
|
||||||
|
|
||||||
|
**Problem:** Admin table borders still visible despite `border: none` declarations in v1.2.3
|
||||||
|
|
||||||
|
```txt
|
||||||
|
Issue: WooCommerce's core admin CSS has higher specificity border rules
|
||||||
|
Location: assets/css/admin.css
|
||||||
|
Symptom: Tables still showing borders in product edit screens
|
||||||
|
```
|
||||||
|
|
||||||
|
- **Root Cause:** WooCommerce's default admin CSS uses highly specific selectors that override simple `border: none` declarations
|
||||||
|
- **Failed Approach (v1.2.3):** Adding `border: none` to table elements without `!important`
|
||||||
|
- **Successful Fix (v1.2.4):**
|
||||||
|
- Added `!important` flags to ALL border removal rules
|
||||||
|
- Added `border-collapse: collapse !important` to force borderless styling
|
||||||
|
- Targeted all table structural elements: `table`, `th`, `td`, `thead`, `tbody`, `tr`
|
||||||
|
- **Lesson:** When overriding WooCommerce core CSS, `!important` is often necessary due to high specificity in core styles
|
||||||
|
|
||||||
|
**Problem:** Help icon positioned at right edge instead of next to label text
|
||||||
|
|
||||||
|
```txt
|
||||||
|
Issue: WooCommerce help-tip uses float: right positioning
|
||||||
|
Location: assets/css/admin.css (checkbox/label layout)
|
||||||
|
Symptom: Help icon appearing far from label text at container edge
|
||||||
|
```
|
||||||
|
|
||||||
|
- **Root Cause:** WooCommerce's default `.woocommerce-help-tip` styling uses `float: right`
|
||||||
|
- **Failed Approach (v1.2.3):** Simple margin adjustments without changing positioning model
|
||||||
|
- **Successful Fix (v1.2.4):**
|
||||||
|
- Removed float positioning: `float: none`
|
||||||
|
- Changed to `display: inline-block` with `vertical-align: middle`
|
||||||
|
- Wrapped label and help-tip in flexbox container: `display: inline-flex; align-items: center`
|
||||||
|
- Controlled precise spacing with margins (checkbox: 12px, help-tip: 6px)
|
||||||
|
- **Lesson:** Overriding float-based layouts often requires changing to flexbox for proper control
|
||||||
|
|
||||||
## Release Process
|
## Release Process
|
||||||
|
|
||||||
### Version Bumping
|
### Version Bumping
|
||||||
@@ -506,6 +541,83 @@ When modifying admin input fields in Twig templates, use WooCommerce's standard
|
|||||||
|
|
||||||
**Location:** `templates/admin/*.twig` for admin UI changes
|
**Location:** `templates/admin/*.twig` for admin UI changes
|
||||||
|
|
||||||
|
#### CSS Specificity and WooCommerce Overrides
|
||||||
|
|
||||||
|
**CRITICAL LESSON from v1.2.4:** WooCommerce's core admin CSS uses high-specificity selectors that require `!important` to override.
|
||||||
|
|
||||||
|
**Problem Symptoms:**
|
||||||
|
- CSS rules not applying despite correct selectors
|
||||||
|
- Styles work in simple cases but fail with WooCommerce elements
|
||||||
|
- Browser DevTools shows rule crossed out or overridden
|
||||||
|
|
||||||
|
**Diagnostic Steps:**
|
||||||
|
1. Inspect element in browser DevTools
|
||||||
|
2. Check "Computed" tab to see which styles are actually applied
|
||||||
|
3. Look for crossed-out rules in "Styles" tab (indicates override)
|
||||||
|
4. Check selector specificity - WooCommerce often uses complex selectors
|
||||||
|
|
||||||
|
**Solution Patterns:**
|
||||||
|
|
||||||
|
**For Table Styling:**
|
||||||
|
```css
|
||||||
|
/* ❌ This will likely be overridden */
|
||||||
|
.wc-tpp-tiers-table {
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ✅ Use !important for core WooCommerce overrides */
|
||||||
|
.wc-tpp-tiers-table,
|
||||||
|
.wc-tpp-tiers-table th,
|
||||||
|
.wc-tpp-tiers-table td,
|
||||||
|
.wc-tpp-tiers-table thead,
|
||||||
|
.wc-tpp-tiers-table tbody,
|
||||||
|
.wc-tpp-tiers-table tr {
|
||||||
|
border: none !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ✅ Also use border-collapse to prevent cell borders */
|
||||||
|
.wc-tpp-tiers-table {
|
||||||
|
border-collapse: collapse !important;
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
**For Float-Based Layouts:**
|
||||||
|
```css
|
||||||
|
/* ❌ Float positioning is hard to control precisely */
|
||||||
|
.woocommerce-help-tip {
|
||||||
|
float: right;
|
||||||
|
margin-left: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ✅ Use flexbox for precise control */
|
||||||
|
label[for="_wc_tpp_restrict_to_packages"] {
|
||||||
|
display: inline-flex;
|
||||||
|
align-items: center;
|
||||||
|
gap: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.woocommerce-help-tip {
|
||||||
|
float: none;
|
||||||
|
display: inline-block;
|
||||||
|
vertical-align: middle;
|
||||||
|
margin-left: 6px;
|
||||||
|
margin-right: 0;
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
**General Rules:**
|
||||||
|
1. **Always test in actual WordPress admin** - browser preview may not show WooCommerce's CSS
|
||||||
|
2. **Target all related elements** - tables require styling on `table`, `thead`, `tbody`, `tr`, `th`, `td`
|
||||||
|
3. **Use `!important` sparingly but don't fear it** - sometimes it's the only way to override WooCommerce core
|
||||||
|
4. **Prefer flexbox over floats** - gives better control over alignment and spacing
|
||||||
|
5. **Check across browsers** - table rendering can vary between Chrome/Firefox/Safari
|
||||||
|
|
||||||
|
**When Styles Don't Apply:**
|
||||||
|
- First verify selector is correct (DevTools should show rule, even if crossed out)
|
||||||
|
- If selector is correct but crossed out, increase specificity or add `!important`
|
||||||
|
- If selector doesn't appear at all, check file is enqueued and cache is cleared
|
||||||
|
- Use browser's "Inspect" right-click to see exact element structure
|
||||||
|
|
||||||
#### Git Workflow Issues
|
#### Git Workflow Issues
|
||||||
|
|
||||||
**Problem:** Cannot rebase due to uncommitted changes
|
**Problem:** Cannot rebase due to uncommitted changes
|
||||||
@@ -647,6 +759,12 @@ Roadmap for the upcoming development.
|
|||||||
|
|
||||||
2. ~~Bug 2 in v1.2.3: Increase the margin between checkbox and label and put the help icon right next to the label, not at the right border~~ ✅ **FIXED in v1.2.4** - Increased checkbox right margin from 8px to 12px. Repositioned help tip icon to display inline right next to the label text using flexbox layout with `display: inline-flex`, removing float positioning that caused it to appear at the right edge.
|
2. ~~Bug 2 in v1.2.3: Increase the margin between checkbox and label and put the help icon right next to the label, not at the right border~~ ✅ **FIXED in v1.2.4** - Increased checkbox right margin from 8px to 12px. Repositioned help tip icon to display inline right next to the label text using flexbox layout with `display: inline-flex`, removing float positioning that caused it to appear at the right edge.
|
||||||
|
|
||||||
|
##### Planned Enhancements for v1.2.5+
|
||||||
|
|
||||||
|
1. Hide the table-headers in admin area until a tier or respectivly a package price is defined.
|
||||||
|
|
||||||
|
2. Make it possible to define tier or package prices on variable products in the parent product as a default for that product and all variants of it unless a variant has its own tier or package prices.
|
||||||
|
|
||||||
##### New Features
|
##### New Features
|
||||||
|
|
||||||
1. Create different, selectable templates for tierprices and packages to use in the frontend. Make the new templates selectable globally on the settings-page, not per product.
|
1. Create different, selectable templates for tierprices and packages to use in the frontend. Make the new templates selectable globally on the settings-page, not per product.
|
||||||
|
|||||||
Reference in New Issue
Block a user