Changeset 3788777
- Timestamp:
- 11/06/2026 09:53:14 PM (8 hours ago)
- Location:
- rollora/trunk
- Files:
-
- 5 edited
-
includes/class-blinds-admin.php (modified) (1 diff)
-
includes/class-blinds-import-admin.php (modified) (2 diffs)
-
includes/class-blinds-lifecycle.php (modified) (2 diffs)
-
readme.txt (modified) (3 diffs)
-
rollora.php (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
rollora/trunk/includes/class-blinds-admin.php
r3788554 r3788777 404 404 plugin_dir_url(__FILE__) . '../assets/admin.css', 405 405 [], 406 '1.0. 0'406 '1.0.1' 407 407 ); 408 408 }); -
rollora/trunk/includes/class-blinds-import-admin.php
r3788554 r3788777 235 235 } 236 236 237 if ($active !== null) {238 echo '<h2>Active price book</h2><p>Book #' . esc_html((string) $active['id'] ?? '')239 . ' — source: ' . esc_html((string) $active['source_filename'] ?? '')240 . ' — rows: ' . esc_html((string) count($active['rows'] ?? []))241 . ' — label: ' . esc_html((string) ($active['data_label'] ?? 'SYNTHETIC'))242 . ' — activated by user ' . esc_html((string) $active['activated_by'] ?? '')243 . ' at ' . esc_html((string) $active['activated_at'] ?? '') . '</p>';244 } else {245 echo '<h2>Active price book</h2><p>None active yet.</p>';246 }247 248 237 /* ---- Step (c): approve (handled before rendering the forms) ---- */ 249 238 if (!empty($_POST['blinds_price_books_approve']) … … 296 285 } 297 286 287 /* ---- Active price book (rendered AFTER the approve/rollback 288 * handlers above, so it names the book that is active now) ---- 289 * 1.0.1 fix: this line was previously rendered before the approve 290 * handler ran, so on the approval response it still named the 291 * previous active book while the notice and history table below 292 * already showed the newly activated one. $active is re-fetched 293 * by the handlers above after any activation or rollback. */ 294 if ($active !== null) { 295 echo '<h2>Active price book</h2><p>Book #' . esc_html((string) $active['id'] ?? '') 296 . ' — source: ' . esc_html((string) $active['source_filename'] ?? '') 297 . ' — rows: ' . esc_html((string) count($active['rows'] ?? [])) 298 . ' — label: ' . esc_html((string) ($active['data_label'] ?? 'SYNTHETIC')) 299 . ' — activated by user ' . esc_html((string) $active['activated_by'] ?? '') 300 . ' at ' . esc_html((string) $active['activated_at'] ?? '') . '</p>'; 301 } else { 302 echo '<h2>Active price book</h2><p>None active yet.</p>'; 303 } 304 298 305 /* ---- Step (a): upload ---- */ 299 306 echo '<h2>Step 1 — Upload CSV</h2>'; -
rollora/trunk/includes/class-blinds-lifecycle.php
r3788554 r3788777 16 16 * defaults ONLY if no valid stored config exists — an existing admin 17 17 * config is never overwritten. It also records wp_option 18 * 'blinds_plugin_version' = '1.0. 0'.18 * 'blinds_plugin_version' = '1.0.1'. 19 19 * 20 20 * Deactivation deletes nothing and removes no options, so a temporary … … 65 65 } 66 66 } 67 update_option('blinds_plugin_version', '1.0. 0');67 update_option('blinds_plugin_version', '1.0.1'); 68 68 } 69 69 -
rollora/trunk/readme.txt
r3788615 r3788777 7 7 WC requires at least: 11.2 8 8 WC tested up to: 11.2 9 Stable tag: 1.0. 09 Stable tag: 1.0.1 10 10 License: GPLv2 or later 11 11 License URI: https://www.gnu.org/licenses/gpl-2.0.html … … 27 27 == Installation == 28 28 29 1. Install the plugin ZIP via WordPress Admin > Plugins > Add New > Upload Plugin, then activate it. Activation seeds the supplier configuration from the synthetic defaults and records plugin version 1.0. 0. It never overwrites an existing admin configuration.29 1. Install the plugin ZIP via WordPress Admin > Plugins > Add New > Upload Plugin, then activate it. Activation seeds the supplier configuration from the synthetic defaults and records plugin version 1.0.1. It never overwrites an existing admin configuration. 30 30 2. Create a simple WooCommerce product for a roller blind and note its ID. 31 31 3. Add `[blinds_roller_configurator product_id="123"]` to a page, replacing 123 with your product ID. … … 106 106 == Screenshots == 107 107 108 1. The customer configurator: width, drop, fit, fabric, control side, bracket, and options, with the price calculated server-side. 109 2. Supplier Settings: deductions, size limits, roll widths, fabrics, and options, with the synthetic defaults clearly labelled. 110 3. Price Books: controlled CSV import with preview, approval, and a history table with one-click rollback to a superseded book. 108 Screenshots are to be captured at submission time from a working installation. None exist yet, and none are claimed here. Intended screenshots: 109 110 1. Customer configurator: width, drop, fit, fabric, and options on a product page. 111 2. Cart and checkout showing the server-calculated blind price and a per-order fee shown separately. 112 3. Supplier Settings admin screen with deductions, size limits, and roll widths. 113 4. Price Books screen: CSV preview with staged rows, row-level errors, and diff against the active book. 114 5. Workshop production sheet generated from a saved order snapshot. 115 6. Price-book history and rollback view. 111 116 112 117 == Changelog == 118 119 = 1.0.1 — 2026-11-06 = 120 121 * Fixed: the "Active price book" line on the Price Books admin page showed the previously active book on the approval response after activating a new price book, while the success notice and the history table already showed the newly activated book. The line is now rendered after the approve/rollback handlers run, so it always names the book that is active now. No pricing, measurement, activation, or other behaviour changed. 113 122 114 123 = 1.0.0 — 2026-11-02 = -
rollora/trunk/rollora.php
r3788554 r3788777 3 3 * Plugin Name: Rollora – Made-to-Measure Roller Blinds 4 4 * Description: Roller blinds only. Configurator, server-side matrix/band/per-m2 pricing, controlled CSV price-book import, immutable order snapshots, and workshop production sheets. Engine prices are tax-exclusive; WooCommerce calculates applicable taxes. Default data is SYNTHETIC until an admin replaces it with real supplier rules. 5 * Version: 1.0. 05 * Version: 1.0.1 6 6 * Requires at least: 7.1 7 7 * Requires PHP: 8.3 … … 37 37 /** Enqueue the responsive configurator/workshop stylesheet on the frontend. */ 38 38 add_action('wp_enqueue_scripts', function () { 39 wp_enqueue_style('blinds-configurator', BLINDS_PROTO_URL . 'assets/configurator.css', [], '1.0. 0');39 wp_enqueue_style('blinds-configurator', BLINDS_PROTO_URL . 'assets/configurator.css', [], '1.0.1'); 40 40 }); 41 41
Note:
See TracChangeset
for help on using the changeset viewer.
![(please configure the [header_logo] section in trac.ini)](/chrome/site/your_project_logo.png)