matthew20687 Posted January 23, 2020 Share Posted January 23, 2020 Hi, I have had some developers do me some work but the person who did it has gone away for three weeks and it has stopped working. On my webpage https://bellevedeals.co.uk there's three flags (UK, US and EU) which when clicked are meant to load the appropriate menu's. This was working fine but for some reason is now not! I have created a page to prove that the cookies are outputting correctly, this is the case. When I click the US flag for example and load the page https://bellevedeals.co.uk/cookie.php it echos 'us'. Is anyone able to help me out? My header.php file is below. The code I believe is about line 256. Thank you so much in advance. Any questions or anything you need from me please let me know :) Matt <!DOCTYPE html> <html <?php language_attributes(); ?>> <head> <meta charset="<?php bloginfo( 'charset' ); ?>" /> <?php elegant_description(); elegant_keywords(); elegant_canonical(); /** * Fires in the head, before {@see wp_head()} is called. This action can be used to * insert elements into the beginning of the head before any styles or scripts. * * @since 1.0 */ do_action( 'et_head_meta' ); $template_directory_uri = get_template_directory_uri(); ?> <link rel="pingback" href="<?php bloginfo('pingback_url'); ?>" /> <script type="text/javascript"> document.documentElement.className = 'js'; </script> <?php wp_head(); ?> </head> <body <?php body_class(); ?>> <?php $product_tour_enabled = et_builder_is_product_tour_enabled(); $page_container_style = $product_tour_enabled ? ' style="padding-top: 0px;"' : ''; ?> <div id="page-container"<?php echo et_core_intentionally_unescaped( $page_container_style, 'fixed_string' ); ?>> <?php if ( $product_tour_enabled || is_page_template( 'page-template-blank.php' ) ) { return; } $et_secondary_nav_items = et_divi_get_top_nav_items(); $et_phone_number = $et_secondary_nav_items->phone_number; $et_email = $et_secondary_nav_items->email; $et_contact_info_defined = $et_secondary_nav_items->contact_info_defined; $show_header_social_icons = $et_secondary_nav_items->show_header_social_icons; $et_secondary_nav = $et_secondary_nav_items->secondary_nav; $et_top_info_defined = $et_secondary_nav_items->top_info_defined; $et_slide_header = 'slide' === et_get_option( 'header_style', 'left' ) || 'fullscreen' === et_get_option( 'header_style', 'left' ) ? true : false; ?> <?php if ( $et_top_info_defined && ! $et_slide_header || is_customize_preview() ) : ?> <?php ob_start(); ?> <div id="top-header"<?php echo $et_top_info_defined ? '' : 'style="display: none;"'; ?>> <div class="container clearfix"> <?php if ( $et_contact_info_defined ) : ?> <div id="et-info"> <?php if ( '' !== ( $et_phone_number = et_get_option( 'phone_number' ) ) ) : ?> <span id="et-info-phone"><?php echo et_core_esc_previously( et_sanitize_html_input_text( $et_phone_number ) ); ?></span> <?php endif; ?> <?php if ( '' !== ( $et_email = et_get_option( 'header_email' ) ) ) : ?> <a href="<?php echo esc_attr( 'mailto:' . $et_email ); ?>"><span id="et-info-email"><?php echo esc_html( $et_email ); ?></span></a> <?php endif; ?> <?php if ( true === $show_header_social_icons ) { get_template_part( 'includes/social_icons', 'header' ); } ?> </div> <!-- #et-info --> <?php endif; // true === $et_contact_info_defined ?> <div id="et-secondary-menu"> <?php if ( ! $et_contact_info_defined && true === $show_header_social_icons ) { get_template_part( 'includes/social_icons', 'header' ); } else if ( $et_contact_info_defined && true === $show_header_social_icons ) { ob_start(); get_template_part( 'includes/social_icons', 'header' ); $duplicate_social_icons = ob_get_contents(); ob_end_clean(); printf( '<div class="et_duplicate_social_icons"> %1$s </div>', et_core_esc_previously( $duplicate_social_icons ) ); } if ( '' !== $et_secondary_nav ) { echo et_core_esc_wp( $et_secondary_nav ); } et_show_cart_total(); ?> </div> <!-- #et-secondary-menu --> </div> <!-- .container --> </div> <!-- #top-header --> <?php $top_header = ob_get_clean(); /** * Filters the HTML output for the top header. * * @since 3.10 * * @param string $top_header */ echo et_core_intentionally_unescaped( apply_filters( 'et_html_top_header', $top_header ), 'html' ); ?> <?php endif; // true ==== $et_top_info_defined ?> <?php if ( $et_slide_header || is_customize_preview() ) : ?> <?php ob_start(); ?> <div class="et_slide_in_menu_container"> <?php if ( 'fullscreen' === et_get_option( 'header_style', 'left' ) || is_customize_preview() ) { ?> <span class="mobile_menu_bar et_toggle_fullscreen_menu"></span> <?php } ?> <?php if ( $et_contact_info_defined || true === $show_header_social_icons || false !== et_get_option( 'show_search_icon', true ) || class_exists( 'woocommerce' ) || is_customize_preview() ) { ?> <div class="et_slide_menu_top"> <?php if ( 'fullscreen' === et_get_option( 'header_style', 'left' ) ) { ?> <div class="et_pb_top_menu_inner"> <?php } ?> <?php } if ( true === $show_header_social_icons ) { get_template_part( 'includes/social_icons', 'header' ); } et_show_cart_total(); ?> <?php if ( false !== et_get_option( 'show_search_icon', true ) || is_customize_preview() ) : ?> <?php if ( 'fullscreen' !== et_get_option( 'header_style', 'left' ) ) { ?> <div class="clear"></div> <?php } ?> <form role="search" method="get" class="et-search-form" action="<?php echo esc_url( home_url( '/' ) ); ?>"> <?php printf( '<input type="search" class="et-search-field" placeholder="%1$s" value="%2$s" name="s" title="%3$s" />', esc_attr__( 'Search …', 'Divi' ), get_search_query(), esc_attr__( 'Search for:', 'Divi' ) ); ?> <button type="submit" id="searchsubmit_header"></button> </form> <?php endif; // true === et_get_option( 'show_search_icon', false ) ?> <?php if ( $et_contact_info_defined ) : ?> <div id="et-info"> <?php if ( '' !== ( $et_phone_number = et_get_option( 'phone_number' ) ) ) : ?> <span id="et-info-phone"><?php echo et_core_esc_previously( et_sanitize_html_input_text( $et_phone_number ) ); ?></span> <?php endif; ?> <?php if ( '' !== ( $et_email = et_get_option( 'header_email' ) ) ) : ?> <a href="<?php echo esc_attr( 'mailto:' . $et_email ); ?>"><span id="et-info-email"><?php echo esc_html( $et_email ); ?></span></a> <?php endif; ?> </div> <!-- #et-info --> <?php endif; // true === $et_contact_info_defined ?> <?php if ( $et_contact_info_defined || true === $show_header_social_icons || false !== et_get_option( 'show_search_icon', true ) || class_exists( 'woocommerce' ) || is_customize_preview() ) { ?> <?php if ( 'fullscreen' === et_get_option( 'header_style', 'left' ) ) { ?> </div> <!-- .et_pb_top_menu_inner --> <?php } ?> </div> <!-- .et_slide_menu_top --> <?php } ?> <div class="et_pb_fullscreen_nav_container"> <?php $slide_nav = ''; $slide_menu_class = 'et_mobile_menu'; $slide_nav = wp_nav_menu( array( 'theme_location' => 'primary-menu', 'container' => '', 'fallback_cb' => '', 'echo' => false, 'items_wrap' => '%3$s' ) ); $slide_nav .= wp_nav_menu( array( 'theme_location' => 'secondary-menu', 'container' => '', 'fallback_cb' => '', 'echo' => false, 'items_wrap' => '%3$s' ) ); ?> <ul id="mobile_menu_slide" class="<?php echo esc_attr( $slide_menu_class ); ?>"> <?php if ( '' === $slide_nav ) : ?> <?php if ( 'on' === et_get_option( 'divi_home_link' ) ) { ?> <li <?php if ( is_home() ) echo( 'class="current_page_item"' ); ?>><a href="<?php echo esc_url( home_url( '/' ) ); ?>"><?php esc_html_e( 'Home', 'Divi' ); ?></a></li> <?php }; ?> <?php show_page_menu( $slide_menu_class, false, false ); ?> <?php show_categories_menu( $slide_menu_class, false ); ?> <?php else : echo et_core_esc_wp( $slide_nav ) ; endif; ?> </ul> </div> </div> <?php $slide_header = ob_get_clean(); /** * Filters the HTML output for the slide header. * * @since 3.10 * * @param string $top_header */ echo et_core_intentionally_unescaped( apply_filters( 'et_html_slide_header', $slide_header ), 'html' ); ?> <?php endif; // true ==== $et_slide_header ?> <?php ob_start(); ?> <header id="main-header" data-height-onload="<?php echo esc_attr( et_get_option( 'menu_height', '66' ) ); ?>"> <div class="container clearfix et_menu_container"> <?php $logo = ( $user_logo = et_get_option( 'divi_logo' ) ) && ! empty( $user_logo ) ? $user_logo : $template_directory_uri . '/images/logo.png'; ob_start(); ?> <div class="logo_container"> <span class="logo_helper"></span> <a href="<?php echo esc_url( home_url( '/' ) ); ?>"> <img src="<?php echo esc_attr( $logo ); ?>" alt="<?php echo esc_attr( get_bloginfo( 'name' ) ); ?>" id="logo" data-height-percentage="<?php echo esc_attr( et_get_option( 'logo_height', '54' ) ); ?>" /> </a> </div> <?php $logo_container = ob_get_clean(); /** * Filters the HTML output for the logo container. * * @since 3.10 * * @param string $logo_container */ echo et_core_intentionally_unescaped( apply_filters( 'et_html_logo_container', $logo_container ), 'html' ); ?> <div id="et-top-navigation" data-height="<?php echo esc_attr( et_get_option( 'menu_height', '66' ) ); ?>" data-fixed-height="<?php echo esc_attr( et_get_option( 'minimized_menu_height', '40' ) ); ?>"> <?php if ( ! $et_slide_header || is_customize_preview() ) : ?> <nav id="top-menu-nav"> <?php $menuClass = 'nav'; if ( 'on' === et_get_option( 'divi_disable_toptier' ) ) $menuClass .= ' et_disable_top_tier'; $primaryNav = ''; if($_COOKIE['storeselector']=='uk') { $primaryNav = wp_nav_menu( array( 'theme_location' => 'primary-menu', 'container' => '', 'fallback_cb' => '', 'menu_class' => $menuClass, 'menu_id' => 'top-menu', 'echo' => false ) ); } else if($_COOKIE['storeselector']=='us'){ $primaryNav = wp_nav_menu( array( 'theme_location' => 'us-menu', 'container' => '', 'fallback_cb' => '', 'menu_class' => $menuClass, 'menu_id' => 'top-menu', 'echo' => false ) ); } else if($_COOKIE['storeselector']=='eu'){ $primaryNav = wp_nav_menu( array( 'theme_location' => 'eu-menu', 'container' => '', 'fallback_cb' => '', 'menu_class' => $menuClass, 'menu_id' => 'top-menu', 'echo' => false ) ); } else{ $primaryNav = wp_nav_menu( array( 'theme_location' => 'primary-menu', 'container' => '', 'fallback_cb' => '', 'menu_class' => $menuClass, 'menu_id' => 'top-menu', 'echo' => false ) ); } if ( empty( $primaryNav ) ) : ?> <ul id="top-menu" class="trans <?php echo esc_attr( $menuClass ); ?>"> <?php if ( 'on' === et_get_option( 'divi_home_link' ) ) { ?> <li <?php if ( is_home() ) echo( 'class="current_page_item"' ); ?>><a href="<?php echo esc_url( home_url( '/' ) ); ?>"><?php esc_html_e( 'Home', 'Divi' ); ?></a></li> <?php }; ?> <?php show_page_menu( $menuClass, false, false ); ?> <?php show_categories_menu( $menuClass, false ); ?> <li class="menu-item"><div class="langselectorr"> <img src="<?php echo get_option( 'my_layout_option9', true );?>" class="lanchooserico uslang" title="USA"> <img src="<?php echo get_option( 'my_layout_option8', true );?>" class="lanchooserico uklang" title="United Kingdom"> <img src="<?php echo get_option( 'my_layout_option10', true );?>" class="lanchooserico eulang" title="Europe"> </div></li> </ul> <?php else : echo et_core_esc_wp( $primaryNav ); endif; ?> </nav> <?php endif; ?> <?php if ( ! $et_top_info_defined && ( ! $et_slide_header || is_customize_preview() ) ) { //et_show_cart_total( array('no_text' => true,) ); } ?> <?php if ( $et_slide_header || is_customize_preview() ) : ?> <!--<span class="mobile_menu_bar et_pb_header_toggle et_toggle_<?php echo esc_attr( et_get_option( 'header_style', 'left' ) ); ?>_menu"></span>--> <?php endif; ?> <?php if ( ( false !== et_get_option( 'show_search_icon', true ) && ! $et_slide_header ) || is_customize_preview() ) : ?> <div id="et_top_search"> <div class="langselectorr"> <img src="<?php echo get_option( 'my_layout_option9', true );?>" class="lanchooserico uslang" title="USA"> <img src="<?php echo get_option( 'my_layout_option8', true );?>" class="lanchooserico uklang" title="United Kingdom"> <img src="<?php echo get_option( 'my_layout_option10', true );?>" class="lanchooserico eulang" title="Europe"> </div> <!--<span id="et_search_icon"></span>--> </div> <?php endif; // true === et_get_option( 'show_search_icon', false ) ?> <?php /** * Fires at the end of the 'et-top-navigation' element, just before its closing tag. * * @since 1.0 */ do_action( 'et_header_top' ); ?> <div class="langselectorr"> <img src="<?php echo get_option( 'my_layout_option9', true );?>" class="lanchooserico uslang" title="USA"> <img src="<?php echo get_option( 'my_layout_option8', true );?>" class="lanchooserico uklang" title="United Kingdom"> <img src="<?php echo get_option( 'my_layout_option10', true );?>" class="lanchooserico eulang" title="Europe"> </div> </div> <!-- #et-top-navigation --> </div> <!-- .container --> <div class="et_search_outer"> <div class="container et_search_form_container"> <form role="search" method="get" class="et-search-form" action="<?php echo esc_url( home_url( '/' ) ); ?>"> <?php printf( '<input type="search" class="et-search-field" placeholder="%1$s" value="%2$s" name="s" title="%3$s" />', esc_attr__( 'Search …', 'Divi' ), get_search_query(), esc_attr__( 'Search for:', 'Divi' ) ); ?> </form> <span class="et_close_search_field"></span> </div> </div> </header> <!-- #main-header --> <?php $main_header = ob_get_clean(); /** * Filters the HTML output for the main header. * * @since 3.10 * * @param string $main_header */ echo et_core_intentionally_unescaped( apply_filters( 'et_html_main_header', $main_header ), 'html' ); ?> <div id="et-main-area"> <?php /** * Fires after the header, before the main content is output. * * @since 3.10 */ do_action( 'et_before_main_content' ); ?> <style type="text/css"> @media only screen and (min-width:981px) { .et_header_style_left #et-top-navigation, .et_header_style_split #et-top-navigation { padding:39px 0 0 0; } .lanchooserico {cursor: pointer;float: left;margin-right: 4px;width: 20px;} .langselectorr{width:85px;} .lanchooserico.active {background-color: #f8bd18;opacity: 0.8;border: 1px solid #f8bd18;} .et_search_outer{display: none !important;opacity: 0;} </style> <script type="text/javascript"> jQuery('.uslang').on('click',function(){ setCookie('storeselector','us',365); jQuery('.uslang').addClass('active'); jQuery('.uklang').removeClass('active'); jQuery('.eulang').removeClass('active'); window.location.href = "https://bellevedeals.co.uk/"; }); jQuery('.uklang').on('click',function(){ setCookie('storeselector','uk',365); jQuery('.uklang').addClass('active'); jQuery('.uslang').removeClass('active'); jQuery('.eulang').removeClass('active'); window.location.href = "https://bellevedeals.co.uk/"; }); jQuery('.eulang').on('click',function(){ setCookie('storeselector','eu',365); jQuery('.eulang').addClass('active'); jQuery('.uslang').removeClass('active'); jQuery('.uklang').removeClass('active'); window.location.href = "https://bellevedeals.co.uk/"; }); jQuery(document).ready(function(){ if(getCookie('storeselector')=='us') { jQuery('.uslang').addClass('active'); jQuery('.uklang').removeClass('active'); jQuery('.eulang').removeClass('active'); } else if(getCookie('storeselector')=='uk') { jQuery('.uklang').addClass('active'); jQuery('.uslang').removeClass('active'); jQuery('.eulang').removeClass('active'); } else if(getCookie('storeselector')=='eu') { jQuery('.eulang').addClass('active'); jQuery('.uslang').removeClass('active'); jQuery('.uklang').removeClass('active'); } else { jQuery('.uklang').addClass('active'); jQuery('.uslang').removeClass('active'); jQuery('.eulang').removeClass('active'); } }); function setCookie(cname, cvalue, exdays) { var d = new Date(); d.setTime(d.getTime() + (exdays*24*60*60*1000)); var expires = "expires="+ d.toUTCString(); document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/"; } function getCookie(cname) { var name = cname + "="; var decodedCookie = decodeURIComponent(document.cookie); var ca = decodedCookie.split(';'); for(var i = 0; i <ca.length; i++) { var c = ca[i]; while (c.charAt(0) == ' ') { c = c.substring(1); } if (c.indexOf(name) == 0) { return c.substring(name.length, c.length); } } return ""; } </script> <?php setcookie("myCookie", '879', time() + 3600); ?> Quote Link to comment https://forums.phpfreaks.com/topic/309922-flags-used-to-load-different-parts-of-my-store/ Share on other sites More sharing options...
Barand Posted January 23, 2020 Share Posted January 23, 2020 2 minutes ago, matthew20687 said: This was working fine but for some reason is now not! The obvious question is "What has changed between then and now?" Quote Link to comment https://forums.phpfreaks.com/topic/309922-flags-used-to-load-different-parts-of-my-store/#findComment-1573758 Share on other sites More sharing options...
matthew20687 Posted January 23, 2020 Author Share Posted January 23, 2020 1 minute ago, Barand said: The obvious question is "What has changed between then and now?" That's the problem, not a lot really. I removed a bunch of products manually that I did not want in the store and I created a footer. I am using the DIVI theme, I did this via the theme builder. Quote Link to comment https://forums.phpfreaks.com/topic/309922-flags-used-to-load-different-parts-of-my-store/#findComment-1573759 Share on other sites More sharing options...
matthew20687 Posted January 23, 2020 Author Share Posted January 23, 2020 21 minutes ago, Barand said: The obvious question is "What has changed between then and now?" Right, somehow its the footer than broke it. No idea why or how... Quote Link to comment https://forums.phpfreaks.com/topic/309922-flags-used-to-load-different-parts-of-my-store/#findComment-1573760 Share on other sites More sharing options...
requinix Posted January 23, 2020 Share Posted January 23, 2020 If you changed the footer, how about posting what it was before when everything worked and what it is now that it isn't working. And a more precise description about exactly what isn't working would be nice. We aren't as familiar with your site as you are. Quote Link to comment https://forums.phpfreaks.com/topic/309922-flags-used-to-load-different-parts-of-my-store/#findComment-1573762 Share on other sites More sharing options...
matthew20687 Posted January 24, 2020 Author Share Posted January 24, 2020 (edited) 20 hours ago, requinix said: If you changed the footer, how about posting what it was before when everything worked and what it is now that it isn't working. And a more precise description about exactly what isn't working would be nice. We aren't as familiar with your site as you are. Ended up it was the footer not working with their code. I have removed the footer for now and all’s working again 😀 I do have another question related to the code I posted originally though. I would like to change the home page dependant on the cookie stored when the flags are clicked. Would I be right I just need to add in code to load a specific URL for each of these? <script type="text/javascript"> jQuery('.uslang').on('click',function(){ setCookie('storeselector','us',365); jQuery('.uslang').addClass('active'); jQuery('.uklang').removeClass('active'); jQuery('.eulang').removeClass('active'); window.location.href = "https://bellevedeals.co.uk/"; }); jQuery('.uklang').on('click',function(){ setCookie('storeselector','uk',365); jQuery('.uklang').addClass('active'); jQuery('.uslang').removeClass('active'); jQuery('.eulang').removeClass('active'); window.location.href = "https://bellevedeals.co.uk/"; }); jQuery('.eulang').on('click',function(){ setCookie('storeselector','eu',365); jQuery('.eulang').addClass('active'); jQuery('.uslang').removeClass('active'); jQuery('.uklang').removeClass('active'); window.location.href = "https://bellevedeals.co.uk/"; }); Edited January 24, 2020 by matthew20687 Quote Link to comment https://forums.phpfreaks.com/topic/309922-flags-used-to-load-different-parts-of-my-store/#findComment-1573779 Share on other sites More sharing options...
requinix Posted January 24, 2020 Share Posted January 24, 2020 It's a little more than just changing the code. Right now your site is basically the same for all countries. That's fine, but it doesn't really lend itself to there being multiple URLs for the variations. If you were to significantly change parts of the page, then new URLs would make sense. Honestly, I think what you have now is fine: use a cookie to track the localization being applied to the page. Why do you want to have different URLs? Quote Link to comment https://forums.phpfreaks.com/topic/309922-flags-used-to-load-different-parts-of-my-store/#findComment-1573799 Share on other sites More sharing options...
matthew20687 Posted January 24, 2020 Author Share Posted January 24, 2020 39 minutes ago, requinix said: It's a little more than just changing the code. Right now your site is basically the same for all countries. That's fine, but it doesn't really lend itself to there being multiple URLs for the variations. If you were to significantly change parts of the page, then new URLs would make sense. Honestly, I think what you have now is fine: use a cookie to track the localization being applied to the page. Why do you want to have different URLs? What I was hoping to do was if you clicked the UK flag it would show the homepage with latest UK deals, if you click the US, the US deals etc. I am not sure if there’s an easy way to do this using. I am not massively familiar with using cookies in code in all honesty. If you think it’s the way to go I will do some research . Quote Link to comment https://forums.phpfreaks.com/topic/309922-flags-used-to-load-different-parts-of-my-store/#findComment-1573800 Share on other sites More sharing options...
requinix Posted January 24, 2020 Share Posted January 24, 2020 Sounds like what you really need is to use the cookie when deciding what list of deals to show... Quote Link to comment https://forums.phpfreaks.com/topic/309922-flags-used-to-load-different-parts-of-my-store/#findComment-1573801 Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.