feat: product page layout toggle (flat/card), fix email shortcode rendering
- Add layout_style setting (flat default) to product appearance
- AppearanceController: sanitize & persist layout_style, add to default settings
- Admin SPA: Layout Style select in Appearance > Product
- Customer SPA: useEffect targets <main> bg-white in flat mode (full-width),
card mode uses per-section white floating cards on gray background
- Accordion sections styled per mode: flat=border-t dividers, card=white cards
- Fix email shortcode gaps (EmailRenderer, EmailManager)
- Add missing variables: return_url, contact_url, account_url (alias),
payment_error_reason, order_items_list (alias for order_items_table)
- Fix customer_note extra_data key mismatch (note → customer_note)
- Pass low_stock_threshold via extra_data in low_stock email send
This commit is contained in:
@@ -227,6 +227,7 @@ class EmailRenderer
|
||||
'payment_method' => $data->get_payment_method_title(),
|
||||
'payment_status' => $data->get_status(),
|
||||
'payment_date' => $payment_date,
|
||||
'payment_error_reason' => $data->get_meta('_payment_error_reason') ?: 'Payment declined',
|
||||
'transaction_id' => $data->get_transaction_id() ?: 'N/A',
|
||||
'shipping_method' => $data->get_shipping_method(),
|
||||
'estimated_delivery' => $estimated_delivery,
|
||||
@@ -239,9 +240,12 @@ class EmailRenderer
|
||||
'billing_address' => $data->get_formatted_billing_address(),
|
||||
'shipping_address' => $data->get_formatted_shipping_address(),
|
||||
// URLs
|
||||
'review_url' => $data->get_view_order_url(), // Can be customized later
|
||||
'review_url' => $data->get_view_order_url(),
|
||||
'return_url' => $data->get_view_order_url(), // Customers click to initiate return
|
||||
'contact_url' => home_url('/contact'),
|
||||
'shop_url' => get_permalink(wc_get_page_id('shop')),
|
||||
'my_account_url' => get_permalink(wc_get_page_id('myaccount')),
|
||||
'account_url' => get_permalink(wc_get_page_id('myaccount')), // Alias for my_account_url
|
||||
'payment_retry_url' => $data->get_checkout_payment_url(),
|
||||
// Tracking (if available from meta)
|
||||
'tracking_number' => $data->get_meta('_tracking_number') ?: 'N/A',
|
||||
@@ -249,6 +253,7 @@ class EmailRenderer
|
||||
'shipping_carrier' => $data->get_meta('_shipping_carrier') ?: 'Standard Shipping',
|
||||
]);
|
||||
|
||||
|
||||
// Order items table
|
||||
$items_html = '<table class="order-details" style="width: 100%; border-collapse: collapse;">';
|
||||
$items_html .= '<thead><tr>';
|
||||
@@ -277,9 +282,10 @@ class EmailRenderer
|
||||
|
||||
$items_html .= '</tbody></table>';
|
||||
|
||||
// Both naming conventions for compatibility
|
||||
// All naming conventions for compatibility
|
||||
$variables['order_items'] = $items_html;
|
||||
$variables['order_items_table'] = $items_html;
|
||||
$variables['order_items_list'] = $items_html; // Alias used in some templates
|
||||
}
|
||||
|
||||
// Product variables
|
||||
|
||||
Reference in New Issue
Block a user