|
|
|
@@ -1,7 +1,7 @@
|
|
|
|
|
# WooCommerce Tier and Package Prices - AI Context Document
|
|
|
|
|
|
|
|
|
|
**Last Updated:** 2025-12-29
|
|
|
|
|
**Current Version:** 1.2.2
|
|
|
|
|
**Last Updated:** 2025-12-30
|
|
|
|
|
**Current Version:** 1.2.4
|
|
|
|
|
**Author:** Marco Graetsch
|
|
|
|
|
**Project Status:** Production-ready WordPress plugin
|
|
|
|
|
|
|
|
|
@@ -13,6 +13,7 @@ This is a WooCommerce plugin that adds flexible pricing capabilities to products
|
|
|
|
|
2. **Package Pricing (Fixed Bundles)**: Exact quantity packages at fixed prices (e.g., exactly 10 items for $95, exactly 25 for $200)
|
|
|
|
|
|
|
|
|
|
### Key Fact: 100% AI-Generated
|
|
|
|
|
|
|
|
|
|
This project is proudly **"vibe-coded"** using Claude.AI - the entire codebase was created through AI assistance.
|
|
|
|
|
|
|
|
|
|
## Technical Stack
|
|
|
|
@@ -27,6 +28,7 @@ This project is proudly **"vibe-coded"** using Claude.AI - the entire codebase w
|
|
|
|
|
- **Internationalization:** WordPress i18n (.pot/.po/.mo files)
|
|
|
|
|
|
|
|
|
|
### Dependencies
|
|
|
|
|
|
|
|
|
|
```json
|
|
|
|
|
{
|
|
|
|
|
"twig/twig": "^3.0",
|
|
|
|
@@ -38,7 +40,8 @@ This project is proudly **"vibe-coded"** using Claude.AI - the entire codebase w
|
|
|
|
|
## Architecture
|
|
|
|
|
|
|
|
|
|
### Directory Structure
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
```txt
|
|
|
|
|
wc-tier-and-package-prices/
|
|
|
|
|
├── wc-tier-and-package-prices.php # Main plugin file (entry point)
|
|
|
|
|
├── includes/ # PHP classes
|
|
|
|
@@ -172,6 +175,7 @@ wc-tier-and-package-prices/
|
|
|
|
|
### Price Calculation Logic
|
|
|
|
|
|
|
|
|
|
**Package Pricing** (exact match):
|
|
|
|
|
|
|
|
|
|
```php
|
|
|
|
|
// In cart: if quantity == 10 and package exists for 10, use package price
|
|
|
|
|
if ($quantity == $package['qty']) {
|
|
|
|
@@ -181,6 +185,7 @@ if ($quantity == $package['qty']) {
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
**Tier Pricing** (range-based):
|
|
|
|
|
|
|
|
|
|
```php
|
|
|
|
|
// In cart: if quantity >= 10, use tier price for quantities 10+
|
|
|
|
|
foreach ($tiers as $tier) {
|
|
|
|
@@ -226,7 +231,9 @@ This metadata is used by display filters to show "(Package price)" or "(Volume d
|
|
|
|
|
## Common Patterns & Conventions
|
|
|
|
|
|
|
|
|
|
### Class Instantiation Pattern
|
|
|
|
|
|
|
|
|
|
All classes auto-instantiate at the end of their file:
|
|
|
|
|
|
|
|
|
|
```php
|
|
|
|
|
if (!class_exists('WC_TPP_Frontend')) {
|
|
|
|
|
class WC_TPP_Frontend {
|
|
|
|
@@ -247,7 +254,9 @@ new WC_TPP_Frontend(); // Auto-instantiate
|
|
|
|
|
- Direct file access prevention via `ABSPATH` check
|
|
|
|
|
|
|
|
|
|
### Translation Ready
|
|
|
|
|
|
|
|
|
|
All user-facing strings use:
|
|
|
|
|
|
|
|
|
|
```php
|
|
|
|
|
__('Text to translate', 'wc-tier-package-prices')
|
|
|
|
|
_e('Text to translate', 'wc-tier-package-prices')
|
|
|
|
@@ -270,6 +279,7 @@ Note: Swiss locales use CHF currency formatting in examples (e.g., "CHF 50.-")
|
|
|
|
|
## Known Issues & Historical Context
|
|
|
|
|
|
|
|
|
|
### Settings Page Duplication Saga (v1.1.15-1.1.19)
|
|
|
|
|
|
|
|
|
|
Multiple versions attempted to fix settings page appearing twice:
|
|
|
|
|
|
|
|
|
|
- **Root cause:** Settings file auto-instantiation + Composer autoloader
|
|
|
|
@@ -277,6 +287,7 @@ Multiple versions attempted to fix settings page appearing twice:
|
|
|
|
|
- **Prevention:** Singleton pattern + duplicate detection in array
|
|
|
|
|
|
|
|
|
|
### Class Redeclaration Issues (v1.1.8-1.1.14)
|
|
|
|
|
|
|
|
|
|
Plugin was completely non-functional:
|
|
|
|
|
|
|
|
|
|
- **Cause:** Incorrect initialization pattern without `class_exists()` guards
|
|
|
|
@@ -284,7 +295,8 @@ Plugin was completely non-functional:
|
|
|
|
|
- **Lesson:** Always wrap class declarations in `class_exists()` checks
|
|
|
|
|
|
|
|
|
|
### WooCommerce Blocks Fatal Error (v1.1.19 → v1.1.20)
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
```txt
|
|
|
|
|
Fatal error: Cannot use object of type WC_Product_Simple as array
|
|
|
|
|
Location: includes/class-wc-tpp-cart.php:233
|
|
|
|
|
```
|
|
|
|
@@ -293,9 +305,45 @@ Location: includes/class-wc-tpp-cart.php:233
|
|
|
|
|
- **Fix:** Changed method signature to accept `WC_Product $product` instead of `$cart_item` array
|
|
|
|
|
- **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
|
|
|
|
|
|
|
|
|
|
### Version Bumping
|
|
|
|
|
|
|
|
|
|
Update version in 3 places:
|
|
|
|
|
|
|
|
|
|
1. `wc-tier-and-package-prices.php` - Plugin header comment (line 7)
|
|
|
|
@@ -468,6 +516,7 @@ When making changes, test these critical paths:
|
|
|
|
|
### Common Pitfalls and Solutions
|
|
|
|
|
|
|
|
|
|
#### Release Package Creation
|
|
|
|
|
|
|
|
|
|
**Problem:** Empty or corrupted zip files (0 bytes or wrong structure)
|
|
|
|
|
**Cause:** Running zip command from wrong directory or incorrect path patterns
|
|
|
|
|
**Solution:** Always run from parent directory (`/home/magdev/workspaces/node`) and use full relative paths in exclusions
|
|
|
|
@@ -481,7 +530,9 @@ When making changes, test these critical paths:
|
|
|
|
|
**Solution:** Follow verification steps and check package size immediately after creation
|
|
|
|
|
|
|
|
|
|
#### UI Changes in Admin
|
|
|
|
|
|
|
|
|
|
**WooCommerce CSS Classes:**
|
|
|
|
|
|
|
|
|
|
- `short` - Small input fields (~60px width)
|
|
|
|
|
- `regular` - Medium input fields (~120px width)
|
|
|
|
|
- `long` - Large input fields (~200px+ width)
|
|
|
|
@@ -490,7 +541,85 @@ When modifying admin input fields in Twig templates, use WooCommerce's standard
|
|
|
|
|
|
|
|
|
|
**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
|
|
|
|
|
|
|
|
|
|
**Problem:** Cannot rebase due to uncommitted changes
|
|
|
|
|
**Solution:** Stash local config files (`.claude/settings.local.json`) before git operations
|
|
|
|
|
|
|
|
|
@@ -519,7 +648,7 @@ The plugin uses Twig 3.0 for templating. Key files:
|
|
|
|
|
|
|
|
|
|
### Complete Release Workflow Summary
|
|
|
|
|
|
|
|
|
|
Based on v1.1.22 release experience, here's the complete workflow:
|
|
|
|
|
Based on v1.1.22, v1.2.2, and v1.2.3 release experience, here's the complete workflow:
|
|
|
|
|
|
|
|
|
|
1. **Fix bugs/add features** on `dev` branch
|
|
|
|
|
2. **Update version numbers** (3 files: main plugin file header, constant, composer.json)
|
|
|
|
@@ -544,6 +673,52 @@ Based on v1.1.22 release experience, here's the complete workflow:
|
|
|
|
|
- `releases/wc-tier-and-package-prices-X.X.X.zip*` - Package and checksums
|
|
|
|
|
- Feature-specific files (templates, PHP classes, etc.)
|
|
|
|
|
|
|
|
|
|
### Release Package Creation - Critical Notes
|
|
|
|
|
|
|
|
|
|
**IMPORTANT:** The zip command must be run from the **parent directory** to create proper archive structure.
|
|
|
|
|
|
|
|
|
|
**Correct command (from `/home/magdev/workspaces/php`):**
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
cd /home/magdev/workspaces/php
|
|
|
|
|
zip -r wc-tier-and-package-prices/releases/wc-tier-and-package-prices-X.X.X.zip wc-tier-and-package-prices/ \
|
|
|
|
|
-x '*/\.git/*' '*/.git/*' 'wc-tier-and-package-prices/.git/*' \
|
|
|
|
|
'*.gitignore' '*.log' '*/.claude/*' '*/CLAUDE.md' \
|
|
|
|
|
'*/releases/*' '*/wordpress/*' '*/node_modules/*' \
|
|
|
|
|
'*/.DS_Store' '*/Thumbs.db' '*/.vscode/*' '*/.idea/*' \
|
|
|
|
|
'*.sublime-*' '*/notes.*' '*/logs/*' '*/templates/cache/*' \
|
|
|
|
|
'*/composer.lock'
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
**Critical Exclusions:**
|
|
|
|
|
|
|
|
|
|
- `*/wordpress/*` - MUST be excluded! The project has a symlink to WordPress installation that zip will follow, creating 129MB+ packages instead of ~430KB
|
|
|
|
|
- `.git/*` - All git metadata (multiple patterns needed for reliability)
|
|
|
|
|
- `.claude/*` and `CLAUDE.md` - Development documentation
|
|
|
|
|
- `releases/*` - Prevents including previous releases in new ones
|
|
|
|
|
- `composer.lock` - Not needed in production (vendor/ is included)
|
|
|
|
|
|
|
|
|
|
**Expected Package Size:** ~430-431KB (383 files)
|
|
|
|
|
|
|
|
|
|
**Package Size Alert:** If >1MB, exclusions failed (likely wordpress symlink included)
|
|
|
|
|
|
|
|
|
|
**Verification Steps:**
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
# 1. Check size (should be ~430KB)
|
|
|
|
|
ls -lh releases/wc-tier-and-package-prices-X.X.X.zip
|
|
|
|
|
|
|
|
|
|
# 2. Verify file count (should be 383 files)
|
|
|
|
|
unzip -l releases/wc-tier-and-package-prices-X.X.X.zip | tail -1
|
|
|
|
|
|
|
|
|
|
# 3. Check for excluded files
|
|
|
|
|
unzip -l releases/wc-tier-and-package-prices-X.X.X.zip | grep -E "CLAUDE\.md|\.claude/|\.git/|wordpress/"
|
|
|
|
|
# Should return nothing (exit code 1)
|
|
|
|
|
|
|
|
|
|
# 4. Verify version in package
|
|
|
|
|
unzip -p releases/wc-tier-and-package-prices-X.X.X.zip wc-tier-and-package-prices/wc-tier-and-package-prices.php | head -30 | grep -E "Version:|WC_TPP_VERSION"
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### Future Features and Roadmap
|
|
|
|
|
|
|
|
|
|
The is a hierarchical list for upcoming features and can be considered as a
|
|
|
|
@@ -566,11 +741,29 @@ Roadmap for the upcoming development.
|
|
|
|
|
|
|
|
|
|
##### Bugfixes (Completed in v1.2.2)
|
|
|
|
|
|
|
|
|
|
3. ~~Remove the table borders in admin on variable product to better fit the surrounding element styles.~~ ✅ **FIXED in v1.2.2** - Added CSS rules to remove table borders specifically for variation pricing tables (`.wc-tpp-variation-pricing`), matching WooCommerce's borderless variation UI style.
|
|
|
|
|
1. ~~Remove the table borders in admin on variable product to better fit the surrounding element styles.~~ ✅ **FIXED in v1.2.2** - Added CSS rules to remove table borders specifically for variation pricing tables (`.wc-tpp-variation-pricing`), matching WooCommerce's borderless variation UI style.
|
|
|
|
|
|
|
|
|
|
4. ~~Add missing translations in admin templates ("Price", "Tier & Package Pricing", "Min Quantity") for all languages used in this project.~~ ✅ **FIXED in v1.2.2** - Added missing translation entries for "Min Quantity", "Price", and "Label (optional)" to all .po files (de_DE, de_DE_informal, de_CH, de_CH_informal, fr_CH, it_CH, en_US) and recompiled .mo files.
|
|
|
|
|
2. ~~Add missing translations in admin templates ("Price", "Tier & Package Pricing", "Min Quantity") for all languages used in this project.~~ ✅ **FIXED in v1.2.2** - Added missing translation entries for "Min Quantity", "Price", and "Label (optional)" to all .po files (de_DE, de_DE_informal, de_CH, de_CH_informal, fr_CH, it_CH, en_US) and recompiled .mo files.
|
|
|
|
|
|
|
|
|
|
5. ~~Check the template for wc_tpp_restrict_to_packages[] checkbox elements in admin on variable products and fix the rendering.~~ ✅ **FIXED in v1.2.2** - Fixed checkbox value parameter in variation pricing fields. Changed from ternary expression to direct value assignment, allowing WooCommerce's `woocommerce_wp_checkbox()` to properly handle the checked state.
|
|
|
|
|
3. ~~Check the template for wc_tpp_restrict_to_packages[] checkbox elements in admin on variable products and fix the rendering.~~ ✅ **FIXED in v1.2.2** - Fixed checkbox value parameter in variation pricing fields. Changed from ternary expression to direct value assignment, allowing WooCommerce's `woocommerce_wp_checkbox()` to properly handle the checked state.
|
|
|
|
|
|
|
|
|
|
##### Bugfixes (Completed in v1.2.3)
|
|
|
|
|
|
|
|
|
|
1. ~~Style the tier and packages tables in admin on simple products according to the styles on variable products.~~ ✅ **FIXED in v1.2.3** - Applied borderless table styling to all tier/package tables (both simple and variable products). Removed borders from table, th, and td elements to match WooCommerce's clean admin UI style.
|
|
|
|
|
|
|
|
|
|
2. ~~The checkbox styles from 1.2.2 bug 3 are still not looking correct. The helptext is written instead of hidden after the help icon and the margin between checkbox and label are to small.~~ ✅ **FIXED in v1.2.3** - Added `desc_tip => true` to variation checkbox to show tooltip instead of inline text. Added CSS rules to increase checkbox-label margin (8px) and hide inline description text when tooltip is used.
|
|
|
|
|
|
|
|
|
|
##### Bugfixes (Completed in v1.2.4)
|
|
|
|
|
|
|
|
|
|
1. ~~Bug 1 in v1.2.3 is not fixed. Now both table display have border again. they shouldn't have border.~~ ✅ **FIXED in v1.2.4** - Added `!important` flags and `border-collapse: collapse` to table CSS to override WooCommerce's default table styling. Added comprehensive border removal for all table elements (table, thead, tbody, tr, th, td) to ensure truly borderless tables across all browsers.
|
|
|
|
|
|
|
|
|
|
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
|
|
|
|
|
|
|
|
|
@@ -608,7 +801,7 @@ Roadmap for the upcoming development.
|
|
|
|
|
## File Locations Quick Reference
|
|
|
|
|
|
|
|
|
|
| Task | File(s) |
|
|
|
|
|
|------|---------|
|
|
|
|
|
| ------ | --------- |
|
|
|
|
|
| Change version | `wc-tier-and-package-prices.php` (2 places) |
|
|
|
|
|
| Add global setting | `includes/class-wc-tpp-settings.php` |
|
|
|
|
|
| Modify product meta box | `includes/class-wc-tpp-product-meta.php` + `templates/admin/*.twig` |
|
|
|
|
@@ -648,7 +841,7 @@ Roadmap for the upcoming development.
|
|
|
|
|
|
|
|
|
|
## Support & Resources
|
|
|
|
|
|
|
|
|
|
- **Repository:** https://src.bundespruefstelle.ch/magdev/wc-tier-package-prices
|
|
|
|
|
- **Repository:** <https://src.bundespruefstelle.ch/magdev/wc-tier-package-prices>
|
|
|
|
|
- **Documentation:** See `README.md`, `QUICKSTART.md`, `USAGE_EXAMPLES.md`, `INSTALLATION.md`
|
|
|
|
|
- **Changelog:** `CHANGELOG.md` (detailed version history)
|
|
|
|
|
- **Issue Tracking:** Check fatal-errors-*.log files for production errors
|
|
|
|
|