Jump to content

Flags used to load different parts of my store


matthew20687

Recommended Posts

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 &hellip;', '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 &hellip;', '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);	
?>

 

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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 by matthew20687
Link to comment
Share on other sites

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?

Link to comment
Share on other sites

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 .

Link to comment
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.