You've already forked wc-tier-and-package-prices
Release version 1.2.4 - Fix admin table borders and checkbox layout
Fixed: - Admin table borders still visible despite v1.2.3 fix - added !important flags - Help icon positioning at right edge instead of next to label - changed to flexbox layout - Increased checkbox margin from 8px to 12px for better spacing Technical: - Added border-collapse: collapse !important to force borderless tables - Changed label layout from float to inline-flex for proper help-tip positioning - Added comprehensive border removal with !important on all table elements 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
25
CHANGELOG.md
25
CHANGELOG.md
@@ -5,6 +5,31 @@ All notable changes to WooCommerce Tier and Package Prices will be documented in
|
||||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
||||
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||
|
||||
## [1.2.4] - 2025-12-30
|
||||
|
||||
### Fixed
|
||||
|
||||
- **Admin Table Borders (Critical)**: Fixed table borders still appearing in v1.2.3 despite borderless styling attempt. WooCommerce's default CSS was overriding `border: none` declarations. Added `!important` flags to all border removal rules and `border-collapse: collapse !important` to force borderless styling. Now all tier/package pricing tables (simple and variable products) display correctly without borders, matching WooCommerce's clean admin UI.
|
||||
|
||||
- **Checkbox and Help Icon Layout**: Fixed help icon positioning and checkbox spacing issues from v1.2.3. The help icon was appearing at the right edge of the container instead of next to the label text. Increased checkbox-label margin from 8px to 12px for better spacing. Changed label layout from float positioning to flexbox (`inline-flex`) to keep help icon directly adjacent to label text. Added inline description hiding when tooltip is shown.
|
||||
|
||||
### Technical Details
|
||||
|
||||
**Root Cause - Table Borders**: WooCommerce's core admin CSS has higher specificity border rules that override simple `border: none` declarations. The solution required:
|
||||
- Adding `!important` to all `border: none` rules targeting tables, th, td, thead, tbody, and tr elements
|
||||
- Adding `border-collapse: collapse !important` to prevent cell borders from being visible
|
||||
- Comprehensive targeting of all table structural elements for complete border removal
|
||||
|
||||
**Root Cause - Help Icon Position**: WooCommerce's default `.woocommerce-help-tip` styling uses `float: right` which positions the icon at the container's right edge. The fix:
|
||||
- Removed float positioning with `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 spacing with precise margins (checkbox: 12px right, help-tip: 6px left)
|
||||
|
||||
### Changed Files
|
||||
|
||||
- `assets/css/admin.css` - Added `!important` flags to all border removal rules; added `border-collapse: collapse`; increased checkbox margin to 12px; converted label layout to flexbox; positioned help-tip with inline-block; added inline description hiding
|
||||
|
||||
## [1.2.3] - 2025-12-29
|
||||
|
||||
### Fixed
|
||||
|
||||
33
CLAUDE.md
33
CLAUDE.md
@@ -1,7 +1,7 @@
|
||||
# WooCommerce Tier and Package Prices - AI Context Document
|
||||
|
||||
**Last Updated:** 2025-12-29
|
||||
**Current Version:** 1.2.3
|
||||
**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
|
||||
```
|
||||
@@ -296,6 +308,7 @@ Location: includes/class-wc-tpp-cart.php:233
|
||||
## Release Process
|
||||
|
||||
### Version Bumping
|
||||
|
||||
Update version in 3 places:
|
||||
|
||||
1. `wc-tier-and-package-prices.php` - Plugin header comment (line 7)
|
||||
@@ -468,6 +481,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 +495,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)
|
||||
@@ -491,6 +507,7 @@ When modifying admin input fields in Twig templates, use WooCommerce's standard
|
||||
**Location:** `templates/admin/*.twig` for admin UI changes
|
||||
|
||||
#### Git Workflow Issues
|
||||
|
||||
**Problem:** Cannot rebase due to uncommitted changes
|
||||
**Solution:** Stash local config files (`.claude/settings.local.json`) before git operations
|
||||
|
||||
@@ -624,6 +641,12 @@ Roadmap for the upcoming development.
|
||||
|
||||
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.
|
||||
|
||||
##### 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.
|
||||
@@ -660,7 +683,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` |
|
||||
@@ -700,7 +723,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
|
||||
|
||||
@@ -28,19 +28,34 @@
|
||||
.wc-tpp-packages-table {
|
||||
margin-top: 15px;
|
||||
margin-bottom: 15px;
|
||||
border: none;
|
||||
border: none !important;
|
||||
border-collapse: collapse !important;
|
||||
}
|
||||
|
||||
.wc-tpp-tiers-table th,
|
||||
.wc-tpp-packages-table th,
|
||||
.wc-tpp-tiers-table td,
|
||||
.wc-tpp-packages-table td {
|
||||
border: none !important;
|
||||
}
|
||||
|
||||
.wc-tpp-tiers-table th {
|
||||
font-weight: 600;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.wc-tpp-packages-table th {
|
||||
font-weight: 600;
|
||||
text-align: left;
|
||||
border: none;
|
||||
}
|
||||
|
||||
.wc-tpp-tiers-table td,
|
||||
.wc-tpp-packages-table td {
|
||||
border: none;
|
||||
.wc-tpp-tiers-table thead,
|
||||
.wc-tpp-packages-table thead,
|
||||
.wc-tpp-tiers-table tbody,
|
||||
.wc-tpp-packages-table tbody,
|
||||
.wc-tpp-tiers-table tr,
|
||||
.wc-tpp-packages-table tr {
|
||||
border: none !important;
|
||||
}
|
||||
|
||||
/* Table row styling - rows are now <tr> elements in a table */
|
||||
@@ -99,14 +114,26 @@
|
||||
/* Checkbox styling improvements */
|
||||
#_wc_tpp_restrict_to_packages,
|
||||
input[id^="wc_tpp_restrict_to_packages_"] {
|
||||
margin-right: 8px !important;
|
||||
margin-right: 12px !important;
|
||||
}
|
||||
|
||||
/* Ensure description is properly hidden when desc_tip is used */
|
||||
/* Position help tip icon right next to the label text */
|
||||
.wc-tpp-tier-pricing .woocommerce-help-tip,
|
||||
.wc-tpp-package-pricing .woocommerce-help-tip,
|
||||
.wc-tpp-variation-pricing .woocommerce-help-tip {
|
||||
margin-left: 5px;
|
||||
margin-left: 6px;
|
||||
margin-right: 0;
|
||||
float: none;
|
||||
display: inline-block;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
/* Fix WooCommerce checkbox label layout for our checkboxes */
|
||||
label[for="_wc_tpp_restrict_to_packages"],
|
||||
label[for^="wc_tpp_restrict_to_packages_"] {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
gap: 0;
|
||||
}
|
||||
|
||||
/* Hide inline description text when tooltip is shown */
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "magdev/wc-tier-package-prices",
|
||||
"description": "WooCommerce plugin for tier pricing and package prices with Twig templates",
|
||||
"version": "1.2.3",
|
||||
"version": "1.2.4",
|
||||
"type": "wordpress-plugin",
|
||||
"license": "GPL-2.0-or-later",
|
||||
"authors": [
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
* Plugin Name: WooCommerce Tier and Package Prices
|
||||
* Plugin URI: https://src.bundespruefstelle.ch/magdev/wc-tier-package-prices
|
||||
* Description: Add tier pricing and package prices to WooCommerce products with configurable quantities at fixed prices
|
||||
* Version: 1.2.3
|
||||
* Version: 1.2.4
|
||||
* Author: Marco Graetsch
|
||||
* Author URI: https://src.bundespruefstelle.ch/magdev
|
||||
* Text Domain: wc-tier-package-prices
|
||||
@@ -23,7 +23,7 @@ if (!defined('ABSPATH')) {
|
||||
|
||||
// Define plugin constants
|
||||
if (!defined('WC_TPP_VERSION')) {
|
||||
define('WC_TPP_VERSION', '1.2.3');
|
||||
define('WC_TPP_VERSION', '1.2.4');
|
||||
}
|
||||
if (!defined('WC_TPP_PLUGIN_DIR')) {
|
||||
define('WC_TPP_PLUGIN_DIR', plugin_dir_path(__FILE__));
|
||||
|
||||
Reference in New Issue
Block a user