feat: implement header/footer visibility controls for checkout and thankyou pages
- Created LayoutWrapper component to conditionally render header/footer based on route - Created MinimalHeader component (logo only) - Created MinimalFooter component (trust badges + policy links) - Created usePageVisibility hook to get visibility settings per page - Wrapped ClassicLayout with LayoutWrapper for conditional rendering - Header/footer visibility now controlled directly in React SPA - Settings: show/minimal/hide for both header and footer - Background color support for checkout and thankyou pages
This commit is contained in:
@@ -137,8 +137,8 @@ class Assets {
|
||||
'mode' => 'disabled',
|
||||
'layout' => 'modern',
|
||||
'colors' => [
|
||||
'primary' => '#3B82F6',
|
||||
'secondary' => '#8B5CF6',
|
||||
'primary' => get_option('woonoow_primary_color', '#111827'), // Gray-900 from Store Details
|
||||
'secondary' => '#6B7280', // Gray-500
|
||||
'accent' => '#10B981',
|
||||
],
|
||||
'typography' => [
|
||||
@@ -147,6 +147,13 @@ class Assets {
|
||||
];
|
||||
$theme_settings = array_replace_recursive($default_settings, $spa_settings);
|
||||
|
||||
// Get appearance settings and preload them
|
||||
$appearance_settings = get_option('woonoow_appearance_settings', []);
|
||||
if (empty($appearance_settings)) {
|
||||
// Use defaults from AppearanceController
|
||||
$appearance_settings = \WooNooW\Admin\AppearanceController::get_default_settings();
|
||||
}
|
||||
|
||||
// Get WooCommerce currency settings
|
||||
$currency_settings = [
|
||||
'code' => get_woocommerce_currency(),
|
||||
@@ -157,17 +164,52 @@ class Assets {
|
||||
'decimals' => wc_get_price_decimals(),
|
||||
];
|
||||
|
||||
// Get store logo from WooNooW Store Details (Settings > Store Details)
|
||||
$logo_url = get_option('woonoow_store_logo', '');
|
||||
|
||||
// Get user billing/shipping data if logged in
|
||||
$user_data = [
|
||||
'isLoggedIn' => is_user_logged_in(),
|
||||
'id' => get_current_user_id(),
|
||||
];
|
||||
|
||||
if (is_user_logged_in()) {
|
||||
$customer = new \WC_Customer(get_current_user_id());
|
||||
$user_data['email'] = $customer->get_email();
|
||||
$user_data['billing'] = [
|
||||
'first_name' => $customer->get_billing_first_name(),
|
||||
'last_name' => $customer->get_billing_last_name(),
|
||||
'email' => $customer->get_billing_email(),
|
||||
'phone' => $customer->get_billing_phone(),
|
||||
'address_1' => $customer->get_billing_address_1(),
|
||||
'city' => $customer->get_billing_city(),
|
||||
'state' => $customer->get_billing_state(),
|
||||
'postcode' => $customer->get_billing_postcode(),
|
||||
'country' => $customer->get_billing_country(),
|
||||
];
|
||||
$user_data['shipping'] = [
|
||||
'first_name' => $customer->get_shipping_first_name(),
|
||||
'last_name' => $customer->get_shipping_last_name(),
|
||||
'address_1' => $customer->get_shipping_address_1(),
|
||||
'city' => $customer->get_shipping_city(),
|
||||
'state' => $customer->get_shipping_state(),
|
||||
'postcode' => $customer->get_shipping_postcode(),
|
||||
'country' => $customer->get_shipping_country(),
|
||||
];
|
||||
}
|
||||
|
||||
$config = [
|
||||
'apiUrl' => rest_url('woonoow/v1'),
|
||||
'apiRoot' => rest_url('woonoow/v1'),
|
||||
'nonce' => wp_create_nonce('wp_rest'),
|
||||
'siteUrl' => get_site_url(),
|
||||
'siteTitle' => get_bloginfo('name'),
|
||||
'user' => [
|
||||
'isLoggedIn' => is_user_logged_in(),
|
||||
'id' => get_current_user_id(),
|
||||
],
|
||||
'storeName' => get_bloginfo('name'),
|
||||
'storeLogo' => $logo_url,
|
||||
'user' => $user_data,
|
||||
'theme' => $theme_settings,
|
||||
'currency' => $currency_settings,
|
||||
'appearanceSettings' => $appearance_settings,
|
||||
];
|
||||
|
||||
?>
|
||||
|
||||
Reference in New Issue
Block a user