HEX
Server: Microsoft-IIS/8.5
System: Windows NT YDAWBH120 6.3 build 9600 (Windows Server 2012 R2 Standard Edition) AMD64
User: tentjecom_web (0)
PHP: 7.4.14
Disabled: NONE
Upload Files
File: D:/HostingSpaces/SBogers60/dev.agrimac.nl/wwwroot/wp-content/themes/Avada/includes/woo-config.php
<?php
	/**
	 * Fusion Framework
	 * WARNING: This file is part of the Fusion Core Framework.
	 * Do not edit the core files.
	 * Add any modifications necessary under a child theme.
	 *
	 * @package  Fusion/Template
	 * @author   ThemeFusion
	 * @link     http://theme-fusion.com
	 */

// Exit if accessed directly
	if ( ! defined( 'ABSPATH' ) ) {
		die;
	}

// Don't duplicate me!
	if ( ! class_exists( 'FusionTemplateWoo' ) ) {

		/**
		 * Class to apply woocommerce templates
		 *
		 * @since 4.0.0
		 */
		class FusionTemplateWoo {

			function __construct() {

				add_filter( 'woocommerce_show_page_title', array( $this, 'shop_title' ), 10 );

				remove_action( 'woocommerce_before_main_content', 'woocommerce_output_content_wrapper', 10 );
				remove_action( 'woocommerce_after_main_content', 'woocommerce_output_content_wrapper_end', 10 );
				add_action( 'woocommerce_before_main_content', array( $this, 'before_container' ), 10 );
				add_action( 'woocommerce_after_main_content', array( $this, 'after_container' ), 10 );

				remove_action( 'woocommerce_sidebar', 'woocommerce_get_sidebar', 10 );
				add_action( 'woocommerce_sidebar', array( $this, 'add_sidebar' ), 10 );

				/**
				 * Products Loop
				 */
				remove_action( 'woocommerce_before_shop_loop_item', 'woocommerce_template_loop_product_link_open', 10 );
				remove_action( 'woocommerce_after_shop_loop_item', 'woocommerce_template_loop_product_link_close', 5 );
				remove_action( 'woocommerce_shop_loop_item_title', 'woocommerce_template_loop_product_title', 10 );
				
				add_action( 'woocommerce_shop_loop_item_title', array( $this, 'product_title' ), 10 );
				add_action( 'avada_woocommerce_buttons_on_rollover',  array( $this, 'avada_woocommerce_template_loop_add_to_cart' ), 10 );
				add_action( 'avada_woocommerce_buttons_on_rollover',  array( $this, 'avada_woocommerce_rollover_buttons_linebreak' ), 15 );
				add_action( 'avada_woocommerce_buttons_on_rollover', array( $this, 'show_details_button' ), 20 );

				if ( Avada()->settings->get( 'woocommerce_product_box_design' ) == 'clean' ) {
					remove_action( 'woocommerce_after_shop_loop_item', 'woocommerce_template_loop_add_to_cart', 10 );
					remove_action( 'woocommerce_after_shop_loop_item_title', 'woocommerce_template_loop_rating', 5 );

					add_action( 'woocommerce_after_shop_loop_item', array( $this, 'before_shop_item_buttons' ), 9 );
					
				} else {
					remove_action( 'woocommerce_after_shop_loop_item', 'woocommerce_template_loop_add_to_cart', 10 );

					add_action( 'woocommerce_before_shop_loop_item_title', array( $this, 'avada_show_product_loop_outofstock_flash' ), 10 );
					add_action( 'woocommerce_after_shop_loop_item', array( $this, 'before_shop_item_buttons' ), 5 );
					add_action( 'woocommerce_after_shop_loop_item', array( $this, 'avada_woocommerce_template_loop_add_to_cart' ), 10 );
					add_action( 'woocommerce_after_shop_loop_item', array( $this, 'show_details_button' ), 15 );
					add_action( 'woocommerce_after_shop_loop_item', array( $this, 'after_shop_item_buttons' ), 20 );
				}

				/**
				 * Single Product Page
				 */
				add_action( 'woocommerce_single_product_summary', array( $this, 'add_product_border' ), 19 );
				remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_rating', 10 );
				remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_price', 10 );
				add_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_price', 10 );
				add_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_rating', 11 );

				// Backwards compatibility to 2.4
				add_filter( 'woocommerce_template_path', array( $this, 'backwards_compatibility' ) );

				/**
				 * WooCommerce 2.3 Remove extra checkout button
				 */
				remove_action( 'woocommerce_proceed_to_checkout', 'woocommerce_button_proceed_to_checkout', 20 );

				/* Remove extra cart totals from the hook 2.3.8 woo */
				remove_action( 'woocommerce_cart_collaterals', 'woocommerce_cart_totals', 10 );

				// Add welcome user bar to checkout page
				add_action( 'woocommerce_before_checkout_form', 'avada_top_user_container', 1 );

				// Filter the pagination
				add_filter( 'woocommerce_pagination_args', array( $this, 'change_pagination' ) );

			} // end __construct();

			/**
			 * Filter method to modify path to WooCommerce files if WooCommerce is a version less than 2.3
			 *
			 * @since 3.7.2
			 * @return relative path of WooCommerce template files within the theme
			 */
			function backwards_compatibility( $path ) {
				if ( null !== self::get_wc_version() ) {
					if ( ! version_compare( self::get_wc_version(), '2.5', '>=' ) ) {
						$path = 'woocommerce/compatibility/2.4/';
					}
				}

				return $path;
			}

			/**
			 * Helper method to get the version of the currently installed WooCommerce
			 *
			 * @since 3.7.2
			 * @return string woocommerce version number or null
			 */
			private static function get_wc_version() {
				return defined( 'WC_VERSION' ) && WC_VERSION ? WC_VERSION : null;
			}

			function before_container() {
				ob_start();
				Avada()->layout->add_class( 'content_class' );
				$content_class = ob_get_clean();

				ob_start();
				Avada()->layout->add_style( 'content_style' );
				$content_css = ob_get_clean();

				echo '<div class="woocommerce-container"><div id="content" ' . $content_class . ' ' . $content_css . '>';
			}

			function shop_title() {
				return false;
			}

			function after_container() {
				echo '</div></div>';
			}

			function add_sidebar() {
				do_action( 'fusion_after_content' );
			}

			function avada_show_product_loop_outofstock_flash() {
				global $product;

				if ( ! $product->is_in_stock() ) {
					echo sprintf( '<div class="fusion-out-of-stock"><div class="fusion-position-text">%s</div></div>', __( 'Out of Stock', 'Avada' ) );
				}
			}

			function before_shop_item_buttons() {
				global $post;
				$html = '';
				$buttons_container = '<div class="product-buttons"><div class="product-buttons-container clearfix">';
				if( isset( $_SERVER['QUERY_STRING'] ) ) {
					parse_str( $_SERVER['QUERY_STRING'], $params );
					if( isset ( $params['product_view'] ) ){
						$product_view = $params['product_view'];
						if( $product_view == 'list' ){
							$html = '<div class="product-excerpt product-' . $product_view . '">';
							$html .= '<div class="product-excerpt-container">';
							$html .= '<div class="post-content">';
							$html .= do_shortcode( $post->post_excerpt );
							$html .= '</div>';
							$html .= '</div>';
							$html .= $buttons_container;
							$html .= ' </div>';

							echo $html;
						} else {
							echo $buttons_container;
						}
					} else {
						echo $buttons_container;
					}
				} else {
					echo $buttons_container;
				}
			}

			function avada_woocommerce_template_loop_add_to_cart( $args = array() ) {
				global $product;

				if ( $product &&
					 ( ( $product->is_purchasable() && $product->is_in_stock() ) || $product->is_type( 'external' ) )
				) {
				
					if ( version_compare( self::get_wc_version(), '2.5', '>=' ) ) {

						$defaults = array(
							'quantity' => 1,
							'class'    => implode( ' ', array_filter( array(
									'button',
									'product_type_' . $product->product_type,
									$product->is_purchasable() && $product->is_in_stock() ? 'add_to_cart_button' : '',
									$product->supports( 'ajax_add_to_cart' ) ? 'ajax_add_to_cart' : ''
							) ) )
						);		

						$args = apply_filters( 'woocommerce_loop_add_to_cart_args', wp_parse_args( $args, $defaults ), $product );
					}
					
					wc_get_template( 'loop/add-to-cart.php' , $args );
				}				
			}
			
			function avada_woocommerce_rollover_buttons_linebreak() {
				global $product;
			
				if ( $product &&
					 ( ( $product->is_purchasable() && $product->is_in_stock() ) || $product->is_type( 'external' ) )
				) {
				?>
					<span class="fusion-rollover-linebreak">
						<?php if ( Avada()->settings->get( 'woocommerce_product_box_design' ) == 'clean' ): ?>/<?php endif; ?>
					</span>			
				<?php
				}
			}
			
			function show_details_button() {
				global $product;

				$styles = '';
				if ( ( ! $product->is_purchasable() || ! $product->is_in_stock() ) &&
					 ! $product->is_type( 'external' )
				) {
					$styles = ' style="float:none;max-width:none;text-align:center;"';
				}
				echo sprintf( '<a href="%s" class="show_details_button"%s>%s</a>', get_permalink(), $styles, __( 'Details', 'Avada' ) );
			}			

			function after_shop_item_buttons() {
				?></div></div><?php
			}

			function add_product_border() {
				echo '<div class="product-border"></div>';
			}

			function change_pagination( $options ) {
				$options['prev_text'] 	= '<span class="page-prev"></span><span class="page-text">' . __('Previous', 'Avada') . '</span>';
				$options['next_text'] 	= '<span class="page-text">' . __('Next', 'Avada') . '</span><span class="page-next"></span>';
				$options['type']		= 'plain';

				return $options;
			}

			function product_title() {
				echo '<h3 class="product-title"><a href="' . get_the_permalink() . '">' . get_the_title() . '</a></h3>';
			}

		} // end FusionTemplateWoo() class

	}
	$fusion_template_woo = new FusionTemplateWoo();

	add_filter( 'get_product_search_form', 'avada_product_search_form' );

	function avada_product_search_form( $form ) {
		$form = '<form role="search" method="get" class="searchform" action="' . esc_url( home_url( '/' ) ) . '">
	<div>
	<input type="text" value="' . get_search_query() . '" name="s" class="s" placeholder="' . __( 'Search...', 'Avada' ) . '" />
	<input type="hidden" name="post_type" value="product" />
	</div>
	</form>';

		return $form;
	}

	remove_action( 'woocommerce_before_main_content', 'woocommerce_breadcrumb', 20 );
	remove_action( 'woocommerce_before_shop_loop', 'woocommerce_result_count', 20 );

	if ( ! Avada()->settings->get( 'woocommerce_avada_ordering' ) ) {
		remove_action( 'woocommerce_before_shop_loop', 'woocommerce_catalog_ordering', 30 );

		add_action( 'woocommerce_before_shop_loop', 'avada_woocommerce_catalog_ordering', 30 );
	}
	function avada_woocommerce_catalog_ordering() {

		if ( isset( $_SERVER['QUERY_STRING'] ) ) {
			parse_str( $_SERVER['QUERY_STRING'], $params );

			$query_string = '?' . $_SERVER['QUERY_STRING'];
		} else {
			$query_string = '';
		}

		// replace it with theme option
		if ( Avada()->settings->get( 'woo_items' ) ) {
			$per_page = Avada()->settings->get( 'woo_items' );
		} else {
			$per_page = 12;
		}

		$pob = ! empty( $params['product_orderby'] ) ? $params['product_orderby'] : 'default';

		if ( ! empty( $params['product_order'] ) ) {
			$po = $params['product_order'];
		} else {
			switch ( $pob ) {
				case 'date':
					$po = 'desc';
					break;
				case 'price':
					$po = 'asc';
					break;
				case 'popularity':
					$po = 'asc';
					break;
				case 'rating':
					$po = 'desc';
					break;
				case 'name':
					$po = 'asc';
					break;
				case 'default':
					$po = 'asc';
					break;
			}
		}

		switch ( $pob ) {
			case 'date':
				$order_string = __( 'Date', 'Avada' );
				break;
			case 'price':
				$order_string = __( 'Price', 'Avada' );
				break;
			case 'popularity':
				$order_string = __( 'Popularity', 'Avada' );
				break;
			case 'rating':
				$order_string = __( 'Rating', 'Avada' );
				break;
			case 'name':
				$order_string = __( 'Name', 'Avada' );
				break;
			case 'default':
				$order_string = __( 'Default Order', 'Avada' );
				break;
		}

		$pc = ! empty( $params['product_count'] ) ? $params['product_count'] : $per_page;

		$html = '';
		$html .= '<div class="catalog-ordering clearfix">';

		$html .= '<div class="orderby-order-container">';

		$html .= '<ul class="orderby order-dropdown">';
		$html .= '<li>';
		$html .= '<span class="current-li"><span class="current-li-content"><a aria-haspopup="true">' . __( 'Sort by', 'Avada' ) . ' <strong>' . $order_string . '</strong></a></span></span>';
		$html .= '<ul>';
		$html .= '<li class="' . ( ( $pob == 'default' ) ? 'current' : '' ) . '"><a href="' . fusion_add_url_parameter( $query_string, 'product_orderby', 'default' ) . '">' . __( 'Sort by', 'Avada' ) . ' <strong>' . __( 'Default Order', 'Avada' ) . '</strong></a></li>';
		$html .= '<li class="' . ( ( $pob == 'name' ) ? 'current' : '' ) . '"><a href="' . fusion_add_url_parameter( $query_string, 'product_orderby', 'name' ) . '">' . __( 'Sort by', 'Avada' ) . ' <strong>' . __( 'Name', 'Avada' ) . '</strong></a></li>';
		$html .= '<li class="' . ( ( $pob == 'price' ) ? 'current' : '' ) . '"><a href="' . fusion_add_url_parameter( $query_string, 'product_orderby', 'price' ) . '">' . __( 'Sort by', 'Avada' ) . ' <strong>' . __( 'Price', 'Avada' ) . '</strong></a></li>';
		$html .= '<li class="' . ( ( $pob == 'date' ) ? 'current' : '' ) . '"><a href="' . fusion_add_url_parameter( $query_string, 'product_orderby', 'date' ) . '">' . __( 'Sort by', 'Avada' ) . ' <strong>' . __( 'Date', 'Avada' ) . '</strong></a></li>';
		$html .= '<li class="' . ( ( $pob == 'popularity' ) ? 'current' : '' ) . '"><a href="' . fusion_add_url_parameter( $query_string, 'product_orderby', 'popularity' ) . '">' . __( 'Sort by', 'Avada' ) . ' <strong>' . __( 'Popularity', 'Avada' ) . '</strong></a></li>';
		$html .= '<li class="' . ( ( $pob == 'rating' ) ? 'current' : '' ) . '"><a href="' . fusion_add_url_parameter( $query_string, 'product_orderby', 'rating' ) . '">' . __( 'Sort by', 'Avada' ) . ' <strong>' . __( 'Rating', 'Avada' ) . '</strong></a></li>';
		$html .= '</ul>';
		$html .= '</li>';
		$html .= '</ul>';


		$html .= '<ul class="order">';
		if ( $po == 'desc' ):
			$html .= '<li class="desc"><a aria-haspopup="true" href="' . fusion_add_url_parameter( $query_string, 'product_order', 'asc' ) . '"><i class="fusion-icon-arrow-down2 icomoon-up"></i></a></li>';
		endif;
		if ( $po == 'asc' ):
			$html .= '<li class="asc"><a aria-haspopup="true" href="' . fusion_add_url_parameter( $query_string, 'product_order', 'desc' ) . '"><i class="fusion-icon-arrow-down2"></i></a></li>';
		endif;
		$html .= '</ul>';

		$html .= '</div>';

		$html .= '<ul class="sort-count order-dropdown">';
		$html .= '<li>';
		$html .= '<span class="current-li"><a aria-haspopup="true">' . __( 'Show', 'Avada' ) . ' <strong>' . $per_page . ' ' . __( ' Products', 'Avada' ) . '</strong></a></span>';
		$html .= '<ul>';
		$html .= '<li class="' . ( ( $pc == $per_page ) ? 'current' : '' ) . '"><a href="' . fusion_add_url_parameter( $query_string, 'product_count', $per_page ) . '">' . __( 'Show', 'Avada' ) . ' <strong>' . $per_page . ' ' . __( 'Products', 'Avada' ) . '</strong></a></li>';
		$html .= '<li class="' . ( ( $pc == $per_page * 2 ) ? 'current' : '' ) . '"><a href="' . fusion_add_url_parameter( $query_string, 'product_count', $per_page * 2 ) . '">' . __( 'Show', 'Avada' ) . ' <strong>' . ( $per_page * 2 ) . ' ' . __( 'Products', 'Avada' ) . '</strong></a></li>';
		$html .= '<li class="' . ( ( $pc == $per_page * 3 ) ? 'current' : '' ) . '"><a href="' . fusion_add_url_parameter( $query_string, 'product_count', $per_page * 3 ) . '">' . __( 'Show', 'Avada' ) . ' <strong>' . ( $per_page * 3 ) . ' ' . __( 'Products', 'Avada' ) . '</strong></a></li>';
		$html .= '</ul>';
		$html .= '</li>';
		$html .= '</ul>';

		$woocommerce_toggle_grid_list = Avada()->settings->get( 'woocommerce_toggle_grid_list' );
		$product_view = 'grid';
		if ( isset( $_SERVER['QUERY_STRING'] ) ) {
			parse_str( $_SERVER['QUERY_STRING'], $params );
			if( isset($params[ 'product_view' ] ) ){
				$product_view = $params[ 'product_view' ];
			}
		}

		if( $woocommerce_toggle_grid_list ){
			$html .= '<ul class="fusion-grid-list-view">';

			if ( $product_view == 'grid' ) {
				$html .= '<li class="fusion-grid-view-li active-view">';
			} else {
				$html .= '<li class="fusion-grid-view-li">';
			}
			$html .= '<a class="fusion-grid-view" aria-haspopup="true" href="' . fusion_add_url_parameter( $query_string, 'product_view', 'grid' ) . '"><i class="fusion-icon-grid icomoon-grid"></i></a>';
			$html .= '</li>';

			if ( $product_view == 'list' ) {
				$html .= '<li class="fusion-list-view-li active-view">';
			} else {
				$html .= '<li class="fusion-list-view-li">';
			}
			$html .= '<a class="fusion-list-view" aria-haspopup="true" href="' . fusion_add_url_parameter( $query_string, 'product_view', 'list' ) . '"><i class="fusion-icon-list icomoon-list"></i></a>';
			$html .= '</li>';
			$html .= '</ul>';
		}

		$html .= '</div>';

		echo $html;
	}

	if ( ! Avada()->settings->get( 'woocommerce_avada_ordering' ) ) {
		add_action( 'woocommerce_get_catalog_ordering_args', 'avada_woocommerce_get_catalog_ordering_args', 20 );
	}
	function avada_woocommerce_get_catalog_ordering_args( $args ) {
		global $woocommerce;

		if ( isset( $_SERVER['QUERY_STRING'] ) ) {
			parse_str( $_SERVER['QUERY_STRING'], $params );
		}

		$pob = ! empty( $params['product_orderby'] ) ? $params['product_orderby'] : 'default';
		$po  = ! empty( $params['product_order'] ) ? $params['product_order'] : 'asc';

		switch ( $pob ) {
			case 'date':
				$orderby  = 'date';
				$order    = 'desc';
				$meta_key = '';
				break;
			case 'price':
				$orderby  = 'meta_value_num';
				$order    = 'asc';
				$meta_key = '_price';
				break;
			case 'popularity':
				$orderby  = 'meta_value_num';
				$order    = 'asc';
				$meta_key = 'total_sales';
				break;
			case 'rating':
				$orderby  = 'meta_value_num';
				$order    = 'desc';
				$meta_key = 'average_rating';
				break;
			case 'name':
				$orderby  = 'title';
				$order    = 'asc';
				$meta_key = '';
				break;
			case 'default':
				return $args;
				break;
		}

		switch ( $po ) {
			case 'desc':
				$order = 'desc';
				break;
			case 'asc':
				$order = 'asc';
				break;
			default:
				$order = 'asc';
				break;
		}

		$args['orderby']  = $orderby;
		$args['order']    = $order;
		$args['meta_key'] = $meta_key;

		if ( $pob == 'rating' ) {
			$args['orderby']  = 'menu_order title';
			$args['order']    = $po == 'desc' ? 'desc' : 'asc';
			$args['order']    = strtoupper( $args['order'] );
			$args['meta_key'] = '';

			add_filter( 'posts_clauses', 'fusion_order_by_rating_post_clauses' );
		}

		return $args;
	}

	/**
	 * fusion_order_by_rating_post_clauses function.
	 *
	 * @access public
	 *
	 * @param array $args
	 *
	 * @return array
	 */
	function fusion_order_by_rating_post_clauses( $args ) {
		global $wpdb;

		$args['fields'] .= ", AVG( $wpdb->commentmeta.meta_value ) as average_rating, SUM( $wpdb->comments.comment_approved ) as sum_of_comments_approved ";

		$args['where'] .= " AND ( $wpdb->commentmeta.meta_key = 'rating' OR $wpdb->commentmeta.meta_key IS null ) ";
		//$args['where'] .= " AND $wpdb->comments.comment_approved = 1";

		$args['join'] .= "
		LEFT OUTER JOIN $wpdb->comments ON($wpdb->posts.ID = $wpdb->comments.comment_post_ID)
		LEFT JOIN $wpdb->commentmeta ON($wpdb->comments.comment_ID = $wpdb->commentmeta.comment_id)
	";

		if ( isset( $_SERVER['QUERY_STRING'] ) ) {
			parse_str( $_SERVER['QUERY_STRING'], $params );
		}
		$order = ! empty( $params['product_order'] ) ? $params['product_order'] : 'desc';
		$order = strtoupper( $order );

		$args['orderby'] = "sum_of_comments_approved DESC, average_rating {$order}, $wpdb->posts.post_date DESC";

		$args['groupby'] = "$wpdb->posts.ID";

		return $args;
	}

	add_filter( 'loop_shop_per_page', 'avada_loop_shop_per_page' );
	function avada_loop_shop_per_page() {

		if ( isset( $_SERVER['QUERY_STRING'] ) ) {
			parse_str( $_SERVER['QUERY_STRING'], $params );
		}

		if ( Avada()->settings->get( 'woo_items' ) ) {
			$per_page = Avada()->settings->get( 'woo_items' );
		} else {
			$per_page = 12;
		}

		$pc = ! empty( $params['product_count'] ) ? $params['product_count'] : $per_page;

		return $pc;
	}

	if ( Avada()->settings->get( 'woocommerce_product_box_design' ) != 'clean' ) {
		add_action( 'woocommerce_before_shop_loop_item_title', 'avada_woocommerce_thumbnail', 10 );
		remove_action( 'woocommerce_before_shop_loop_item_title', 'woocommerce_template_loop_product_thumbnail', 10 );
		function avada_woocommerce_thumbnail() {
			global $product, $woocommerce;

			$items_in_cart = array();

			if ( $woocommerce->cart && $woocommerce->cart->get_cart() && is_array( $woocommerce->cart->get_cart() ) ) {
				foreach ( $woocommerce->cart->get_cart() as $cart ) {
					$items_in_cart[] = $cart['product_id'];
				}
			}

			$id      = get_the_ID();
			$in_cart = in_array( $id, $items_in_cart );
			$size    = 'shop_catalog';


			$attachment_image = '';
			if ( ! Avada()->settings->get( 'woocommerce_disable_crossfade_effect' ) ) {
				$gallery = get_post_meta( $id, '_product_image_gallery', true );

				if ( ! empty( $gallery ) ) {
					$gallery          = explode( ',', $gallery );
					$first_image_id   = $gallery[0];
					$attachment_image = wp_get_attachment_image( $first_image_id, $size, false, array( 'class' => 'hover-image' ) );
				}
			}
			$thumb_image = get_the_post_thumbnail( $id, $size );

			if ( $attachment_image ) {
				$classes = 'crossfade-images';
			} else {
				$classes = 'featured-image';
			}

			echo '<span class="' . $classes . '">';
			echo $attachment_image;
			echo $thumb_image;
			if ( $in_cart ) {
				echo '<span class="cart-loading"><i class="fusion-icon-check-square-o"></i></span>';
			} else {
				echo '<span class="cart-loading"><i class="fusion-icon-spinner"></i></span>';
			}
			echo '</span>';
		}
	}


	if ( Avada()->settings->get( 'woocommerce_product_box_design' ) == 'clean' ) {
		add_action( 'woocommerce_before_shop_loop_item_title', 'avada_woocommerce_thumbnail', 10 );
		remove_action( 'woocommerce_before_shop_loop_item_title', 'woocommerce_template_loop_product_thumbnail', 10 );
		function avada_woocommerce_thumbnail() {
			global $product, $woocommerce;

			$items_in_cart = array();

			if ( $woocommerce->cart && $woocommerce->cart->get_cart() && is_array( $woocommerce->cart->get_cart() ) ) {
				foreach ( $woocommerce->cart->get_cart() as $cart ) {
					$items_in_cart[] = $cart['product_id'];
				}
			}

			$id      = get_the_ID();
			$in_cart = in_array( $id, $items_in_cart );
			$size    = 'shop_catalog';
			$post_permalink = get_permalink();
			$classes = '';

			if ( $in_cart ) {
				$classes = 'fusion-item-in-cart';
			}

			$featured_image_markup = avada_render_first_featured_image_markup( $id, $size, $post_permalink, TRUE, FALSE, TRUE, 'disable', 'disable', '', '', 'yes', TRUE );
			echo '<div class="fusion-clean-product-image-wrapper ' . $classes . '">';
				echo $featured_image_markup;
			echo '</div>';
		}
	}

	add_filter( 'wp_nav_menu_items', 'fusion_add_woo_cart_to_widget', 20, 4 );
	function fusion_add_woo_cart_to_widget( $items, $args ) {
		if( class_exists( 'WooCommerce') ) {
			$ubermenu = false;

			if( function_exists( 'ubermenu_get_menu_instance_by_theme_location' ) && ubermenu_get_menu_instance_by_theme_location( $args->theme_location ) ) {
				// disable woo cart on ubermenu navigations
				$ubermenu = true;
			}

			if( $ubermenu == false && $args->container_class == 'fusion-widget-menu' ) {
				$items .= fusion_add_woo_cart_to_widget_html();
			}
		}

		return $items;
	}

	add_filter( 'woocommerce_add_to_cart_fragments', 'avada_woocommerce_header_add_to_cart_fragment' );
	function avada_woocommerce_header_add_to_cart_fragment( $fragments ) {
		global $woocommerce;

		$header_top_cart = avada_nav_woo_cart( 'secondary' );
		$fragments['.fusion-secondary-menu-cart'] = $header_top_cart;

		$header_cart = avada_nav_woo_cart( 'main' );
		$fragments['.fusion-main-menu-cart'] = $header_cart;

		$widget_cart = fusion_add_woo_cart_to_widget_html();
		$fragments['.fusion-widget-cart'] = $widget_cart;

		return $fragments;
	}

	add_action( 'woocommerce_single_product_summary', 'avada_woocommerce_single_product_summary_open', 1 );
	function avada_woocommerce_single_product_summary_open() {
		echo '<div class="summary-container">';
	}

	add_action( 'woocommerce_single_product_summary', 'avada_woocommerce_single_product_summary_close', 100 );
	function avada_woocommerce_single_product_summary_close() {
		echo '</div>';
	}

	add_action( 'woocommerce_after_single_product_summary', 'avada_woocommerce_after_single_product_summary', 15 );
	function avada_woocommerce_after_single_product_summary() {

		$nofollow = '';
		if ( Avada()->settings->get( 'nofollow_social_links' ) ) {
			$nofollow = ' rel="nofollow"';
		}
		$social = '<div class="fusion-clearfix"></div>';
		if ( Avada()->settings->get( 'woocommerce_social_links' ) ) {
			$social .= '<ul class="social-share clearfix">
			<li class="facebook">
				<a href="http://www.facebook.com/sharer.php?m2w&s=100&p&#91;url&#93;=' . get_permalink() . '&p&#91;title&#93;=' . wp_strip_all_tags( get_the_title(), true ) . '" target="_blank"' . $nofollow . '>
					<i class="fontawesome-icon medium circle-yes fusion-icon-facebook"></i>
					<div class="fusion-woo-social-share-text"><span>' . __( 'Share On Facebook', 'Avada' ) . '</span></div>
				</a>
			</li>
			<li class="twitter">
				<a href="https://twitter.com/share?text=' . wp_strip_all_tags( get_the_title(), true ) . ' ' . get_permalink() . '" target="_blank"' . $nofollow . '>
					<i class="fontawesome-icon medium circle-yes fusion-icon-twitter"></i>
					<div class="fusion-woo-social-share-text"><span>' . __( 'Tweet This Product', 'Avada' ) . '</span></div>
				</a>
			</li>
			<li class="pinterest">';
			$full_image = wp_get_attachment_image_src( get_post_thumbnail_id(), 'full' );
			$social .= '<a href="http://pinterest.com/pin/create/button/?url=' . urlencode( get_permalink() ) . '&amp;description=' . urlencode( wp_strip_all_tags( get_the_title(), true ) ) . '&amp;media=' . urlencode( $full_image[0] ) . '" target="_blank"' . $nofollow . '>
					<i class="fontawesome-icon medium circle-yes fusion-icon-pinterest"></i>
					<div class="fusion-woo-social-share-text"><span>' . __( 'Pin This Product', 'Avada' ) . '</span></div>
				</a>
			</li>
			<li class="email">
				<a href="mailto:?subject=' .rawurlencode( html_entity_decode( wp_strip_all_tags( get_the_title(), true ), ENT_COMPAT, 'UTF-8' ) ) . '&amp;body=' . get_permalink() . '" target="_blank"' . $nofollow . '>
					<i class="fontawesome-icon medium circle-yes fusion-icon-mail"></i>
					<div class="fusion-woo-social-share-text"><span>' . __( 'Mail This Product', 'Avada' ) . '</span></div>
				</a>
			</li>
		</ul>';

			echo $social;
		}
	}

	remove_action( 'woocommerce_after_single_product_summary', 'woocommerce_output_related_products', 20 );
	add_action( 'woocommerce_after_single_product_summary', 'avada_woocommerce_output_related_products', 15 );
	function avada_woocommerce_output_related_products() {
		global $post;

		if ( get_post_meta( $post->ID, 'pyre_number_of_related_products', true ) == 'default' ||
		     get_post_meta( $post->ID, 'pyre_number_of_related_products', true ) == '' ||
		     ! get_post_meta( $post->ID, 'pyre_number_of_related_products', true )
		) {
			$number_of_columns = Avada()->settings->get( 'woocommerce_related_columns' );
		} else {
			$number_of_columns = get_post_meta( $post->ID, 'pyre_number_of_related_products', true );
		}

		$args = array(
			'posts_per_page' => $number_of_columns,
			'columns'        => $number_of_columns,
			'orderby'        => 'rand'
		);

		echo '<div class="fusion-clearfix"></div>';
		woocommerce_related_products( apply_filters( 'woocommerce_output_related_products_args', $args ) );
	}


	remove_action( 'woocommerce_after_single_product_summary', 'woocommerce_upsell_display', 15 );
	add_action( 'woocommerce_after_single_product_summary', 'avada_woocommerce_upsell_display', 10 );
	function avada_woocommerce_upsell_display() {
		global $product, $woocommerce_loop, $post;

		$upsells = $product->get_upsells();

		if ( sizeof( $upsells ) == 0 ) {
			return;
		}

		?>
		<div class="fusion-clearfix"></div>
		<?php

		if ( get_post_meta( $post->ID, 'pyre_number_of_related_products', true ) == 'default' ||
		     get_post_meta( $post->ID, 'pyre_number_of_related_products', true ) == '' ||
		     ! get_post_meta( $post->ID, 'pyre_number_of_related_products', true )
		) {
			$number_of_columns = Avada()->settings->get( 'woocommerce_related_columns' );
		} else {
			$number_of_columns = get_post_meta( $post->ID, 'pyre_number_of_related_products', true );
		}

		woocommerce_upsell_display( - 1, $number_of_columns );
	}

	/* variations hooks */


	/* end variations hooks */

	/* cart hooks */
	add_action( 'woocommerce_before_cart_table', 'avada_woocommerce_before_cart_table', 20 );
	function avada_woocommerce_before_cart_table( $args ) {
		global $woocommerce;

		$html = '<div class="woocommerce-content-box full-width clearfix">';

		if ( $woocommerce->cart->get_cart_contents_count() == 1 ) {
			$html .= '<h2>' . sprintf( __( 'You Have %d Item In Your Cart', 'Avada' ), $woocommerce->cart->get_cart_contents_count() ) . '</h2>';
		} else {
			$html .= '<h2>' . sprintf( __( 'You Have %d Items In Your Cart', 'Avada' ), $woocommerce->cart->get_cart_contents_count() ) . '</h2>';
		}

		echo $html;
	}

	add_action( 'woocommerce_after_cart_table', 'avada_woocommerce_after_cart_table', 20 );
	function avada_woocommerce_after_cart_table( $args ) {
		$html = '</div>';

		echo $html;
	}

	function woocommerce_cross_sell_display( $posts_per_page = 3, $columns = 3, $orderby = 'rand' ) {
		wc_get_template( 'cart/cross-sells.php', array(
			'posts_per_page' => $posts_per_page,
			'orderby'        => $orderby,
			'columns'        => $columns
		) );
	}

	function cart_shipping_calc() {
		// Move this code to ~/woocommerce/cart/shipping-calculator.php and move the hook call accordingly.

		global $woocommerce;

		if ( get_option( 'woocommerce_enable_shipping_calc' ) === 'no' || ! WC()->cart->needs_shipping() ) {
			return;
		}
		?>

		<?php do_action( 'woocommerce_before_shipping_calculator' ); ?>

		<div class="woocommerce-shipping-calculator" action="<?php echo esc_url( WC()->cart->get_cart_url() ); ?>" method="post">

			<h2><a href="#" class="shipping-calculator-button"><?php _e( 'Calculate Shipping', 'woocommerce' ); ?></a>
			</h2>

			<div class="avada-shipping-calculator-form">

				<p class="form-row form-row-wide">
					<select name="calc_shipping_country" id="calc_shipping_country" class="country_to_state" rel="calc_shipping_state">
						<option value=""><?php _e( 'Select a country&hellip;', 'woocommerce' ); ?></option>
						<?php
							foreach( WC()->countries->get_shipping_countries() as $key => $value )
								echo '<option value="' . esc_attr( $key ) . '"' . selected( WC()->customer->get_shipping_country(), esc_attr( $key ), false ) . '>' . esc_html( $value ) . '</option>';
						?>
					</select>
				</p>

				<div class="<?php if ( ! Avada()->settings->get( 'avada_styles_dropdowns' ) ): ?>avada-select-parent fusion-layout-column fusion-one-half fusion-spacing-yes<?php endif; ?>">
					<?php
						$current_cc = WC()->customer->get_shipping_country();
						$current_r  = WC()->customer->get_shipping_state();
						$states     = WC()->countries->get_states( $current_cc );

						// Hidden Input
						if ( is_array( $states ) && empty( $states ) ) {

							?><input type="hidden" name="calc_shipping_state" id="calc_shipping_state" placeholder="<?php esc_attr_e( 'State / county', 'woocommerce' ); ?>" /><?php

							// Dropdown Input
						} elseif ( is_array( $states ) ) {

							?><span>
								<select name="calc_shipping_state" id="calc_shipping_state" placeholder="<?php esc_attr_e( 'State / county', 'woocommerce' ); ?>">
									<option value=""><?php _e( 'Select a state&hellip;', 'woocommerce' ); ?></option>
									<?php
										foreach ( $states as $ckey => $cvalue )
											echo '<option value="' . esc_attr( $ckey ) . '" ' . selected( $current_r, $ckey, false ) . '>' . __( esc_html( $cvalue ), 'woocommerce' ) .'</option>';
									?>
								</select>
							</span><?php

							// Standard Input
						} else {

							?><input type="text" class="input-text" value="<?php echo esc_attr( $current_r ); ?>" placeholder="<?php esc_attr_e( 'State / county', 'woocommerce' ); ?>" name="calc_shipping_state" id="calc_shipping_state" /><?php

						}
					?>
				</div>

				<?php if ( apply_filters( 'woocommerce_shipping_calculator_enable_city', false ) ) : ?>

					<p class="form-row form-row-wide">
						<input type="text" class="input-text" value="<?php echo esc_attr( WC()->customer->get_shipping_city() ); ?>" placeholder="<?php esc_attr_e( 'City', 'woocommerce' ); ?>" name="calc_shipping_city" id="calc_shipping_city" />
					</p>

				<?php endif; ?>

				<?php if ( apply_filters( 'woocommerce_shipping_calculator_enable_postcode', true ) ) : ?>

					<div class="form-row form-row-wide fusion-layout-column fusion-one-half fusion-spacing-yes fusion-column-last">
						<input type="text" class="input-text" value="<?php echo esc_attr( WC()->customer->get_shipping_postcode() ); ?>" placeholder="<?php esc_attr_e( 'Postcode / Zip', 'woocommerce' ); ?>" name="calc_shipping_postcode" id="calc_shipping_postcode" />
					</div>

				<?php endif; ?>

				<p>
					<button type="submit" name="calc_shipping" value="1" class="fusion-button button-default button-small button small default"><?php _e( 'Update Totals', 'woocommerce' ); ?></button>
				</p>

				<?php wp_nonce_field( 'woocommerce-cart' ); ?>
			</div>
		</div>

		<?php do_action( 'woocommerce_after_shipping_calculator' ); ?>

	<?php
	}
	
	function woocommerce_shipping_calculator() {
		if ( ! is_cart() ) {
			wc_get_template( 'cart/shipping-calculator.php' );
		}
	}	

	add_action( 'woocommerce_cart_collaterals', 'avada_woocommerce_cart_collaterals' );
	function avada_woocommerce_cart_collaterals( $args ) {
		global $woocommerce;
		?>

		<div class="shipping-coupon">

			<?php echo cart_shipping_calc();

				if ( WC()->cart->coupons_enabled() ) {
					?>
					<div class="coupon">

						<h2><?php _e( 'Have A Promotional Code?', 'Avada' ); ?></h2>

						<input name="coupon_code" class="input-text" id="coupon_code" value=""
						       placeholder="<?php _e( 'Coupon code', 'woocommerce' ); ?>"/>
						<input type="submit" class="fusion-button fusion-button-default fusion-button-small button default small"
						       name="apply_coupon" value="<?php _e( 'Apply', 'Avada' ); ?>"/>

						<?php do_action( 'woocommerce_cart_coupon' ); ?>

					</div>
				<?php
				}
			?>
		</div>
	<?php
	}

	add_action( 'woocommerce_before_cart_totals', 'avada_woocommerce_before_cart_totals', 20 );
	function avada_woocommerce_before_cart_totals( $args ) {
		global $woocommerce; ?>

		<form action="<?php echo esc_url( WC()->cart->get_cart_url() ); ?>" method="post">

	<?php
	}

	add_action( 'woocommerce_after_cart', 'avada_woocommerce_after_cart' );
	function avada_woocommerce_after_cart( $args ) {
		?>

		</form>

	<?php
	}

	remove_action( 'woocommerce_cart_collaterals', 'woocommerce_cross_sell_display' );
	add_action( 'woocommerce_cart_collaterals', 'avada_woocommerce_cross_sell_display', 5 );
	function avada_woocommerce_cross_sell_display() {
		global $product, $woocommerce_loop, $post;

		$crosssells = WC()->cart->get_cross_sells();

		if ( sizeof( $crosssells ) == 0 ) {
			return;
		}

		$number_of_columns = Avada()->settings->get( 'woocommerce_related_columns' );

		woocommerce_cross_sell_display( apply_filters( 'woocommerce_cross_sells_total', - 1 ), $number_of_columns );
	}

	/* end cart hooks */

	/* begin checkout hooks */
	remove_action( 'woocommerce_before_checkout_form', 'woocommerce_checkout_coupon_form', 10 );
	add_action( 'woocommerce_before_checkout_form', 'avada_woocommerce_checkout_coupon_form', 10 );
	function avada_woocommerce_checkout_coupon_form( $args ) {
		global $woocommerce;

		if ( ! WC()->cart->coupons_enabled() ) {
			return;
		}
		?>

		<form class="woocommerce-content-box full-width checkout_coupon" method="post">

			<h2 class="promo-code-heading fusion-alignleft"><?php _e( 'Have A Promotional Code?', 'Avada' ); ?></h2>

			<div class="coupon-contents fusion-alignright">
				<div class="form-row form-row-first fusion-alignleft coupon-input">
					<input type="text" name="coupon_code" class="input-text"
					       placeholder="<?php _e( 'Coupon code', 'woocommerce' ); ?>" id="coupon_code" value=""/>
				</div>

				<div class="form-row form-row-last fusion-alignleft coupon-button">
					<input type="submit" class="fusion-button button-default button-small button default small"
					       name="apply_coupon" value="<?php _e( 'Apply Coupon', 'woocommerce' ); ?>"/>
				</div>

				<div class="clear"></div>
			</div>
		</form>
	<?php
	}

	if ( ! Avada()->settings->get( 'woocommerce_one_page_checkout' ) ) {
		add_action( 'woocommerce_before_checkout_form', 'avada_woocommerce_before_checkout_form' );
	}
	function avada_woocommerce_before_checkout_form( $args ) {
		global $woocommerce;
		?>

		<ul class="woocommerce-side-nav woocommerce-checkout-nav">
			<li class="active">
				<a data-name="col-1" href="#">
					<?php _e( 'Billing Address', 'Avada' ); ?>
				</a>
			</li>
			<?php if ( WC()->cart->needs_shipping() && ! WC()->cart->ship_to_billing_address_only() ) : ?>
				<li>
					<a data-name="col-2" href="#">
						<?php _e( 'Shipping Address', 'Avada' ); ?>
					</a>
				</li>
			<?php
			elseif ( apply_filters( 'woocommerce_enable_order_notes_field', get_option( 'woocommerce_enable_order_comments', 'yes' ) === 'yes' ) ) :

				if ( ! WC()->cart->needs_shipping() || WC()->cart->ship_to_billing_address_only() ) : ?>

					<li>
						<a data-name="col-2" href="#">
							<?php _e( 'Additional Information', 'Avada' ); ?>
						</a>
					</li>
				<?php endif; ?>
			<?php endif; ?>

			<li>
				<a data-name="#order_review" href="#">
					<?php _e( 'Review &amp; Payment', 'Avada' ); ?>
				</a>
			</li>
		</ul>

		<div class="woocommerce-content-box avada-checkout">

	<?php

	}

	if ( ! Avada()->settings->get( 'woocommerce_one_page_checkout' ) ) {
		add_action( 'woocommerce_after_checkout_form', 'avada_woocommerce_after_checkout_form' );
	}
	function avada_woocommerce_after_checkout_form( $args ) {
		?>

		</div>

	<?php

	}

	if ( Avada()->settings->get( 'woocommerce_one_page_checkout' ) ) {
		add_action( 'woocommerce_checkout_before_customer_details', 'avada_woocommerce_checkout_before_customer_details' );
	}
	function avada_woocommerce_checkout_before_customer_details( $args ) {
		global $woocommerce;

		if ( WC()->cart->needs_shipping() && ! WC()->cart->ship_to_billing_address_only() ||
		     apply_filters( 'woocommerce_enable_order_notes_field', get_option( 'woocommerce_enable_order_comments', 'yes' ) === 'yes' ) && ( ! WC()->cart->needs_shipping() || WC()->cart->ship_to_billing_address_only() )
		) {
			return;
		} else {
			?>

			<div class="avada-checkout-no-shipping">

		<?php
		}

	}

	if ( Avada()->settings->get( 'woocommerce_one_page_checkout' ) ) {
		add_action( 'woocommerce_checkout_after_customer_details', 'avada_woocommerce_checkout_after_customer_details' );
	}
	function avada_woocommerce_checkout_after_customer_details( $args ) {
		global $woocommerce;

		if ( WC()->cart->needs_shipping() && ! WC()->cart->ship_to_billing_address_only() ||
		     apply_filters( 'woocommerce_enable_order_notes_field', get_option( 'woocommerce_enable_order_comments', 'yes' ) === 'yes' ) && ( ! WC()->cart->needs_shipping() || WC()->cart->ship_to_billing_address_only() )
		) {
			?>

			<div class="clearboth"></div>

		<?php } else { ?>

			<div class="clearboth"></div>
			</div>

		<?php } ?>

		<div class="woocommerce-content-box full-width">

	<?php
	}


	add_action( 'woocommerce_checkout_billing', 'avada_woocommerce_checkout_billing', 20 );
	function avada_woocommerce_checkout_billing( $args ) {
		global $woocommerce;

		if ( WC()->cart->needs_shipping() && ! WC()->cart->ship_to_billing_address_only() ||
		     apply_filters( 'woocommerce_enable_order_notes_field', get_option( 'woocommerce_enable_order_comments', 'yes' ) === 'yes' ) && ( ! WC()->cart->needs_shipping() || WC()->cart->ship_to_billing_address_only() )
		) {
			$data_name = 'col-2';
		} else {
			$data_name = '#order_review';
		}

		if ( ! Avada()->settings->get( 'woocommerce_one_page_checkout' ) ) {
			?>

			<a data-name="<?php echo $data_name; ?>" href="#"
			   class="fusion-button button-default button-medium  button default medium continue-checkout"><?php _e( 'Continue', 'Avada' ); ?></a>
			<div class="clearboth"></div>

		<?php
		}

	}

	add_action( 'woocommerce_checkout_shipping', 'avada_woocommerce_checkout_shipping', 20 );
	function avada_woocommerce_checkout_shipping( $args ) {

		if ( ! Avada()->settings->get( 'woocommerce_one_page_checkout' ) ) {
			?>

			<a data-name="#order_review" href="#"
			   class="fusion-button button-default button-medium continue-checkout button default medium"><?php _e( 'Continue', 'Avada' ); ?></a>
			<div class="clearboth"></div>

		<?php
		}

	}

	add_filter( 'woocommerce_enable_order_notes_field', 'avada_enable_order_notes_field' );
	function avada_enable_order_notes_field() {

		if ( ! Avada()->settings->get( 'woocommerce_enable_order_notes' ) ) {
			return 0;
		}

		return 1;

	}

	if ( Avada()->settings->get( 'woocommerce_one_page_checkout' ) ) {
		add_action( 'woocommerce_checkout_after_order_review', 'avada_woocommerce_checkout_after_order_review', 20 );
	}
	function avada_woocommerce_checkout_after_order_review() {
		?></div><?php
	}

	//function under myaccount hooks
	remove_action( 'woocommerce_thankyou', 'woocommerce_order_details_table', 10 );
	add_action( 'woocommerce_thankyou', 'avada_woocommerce_view_order', 10 );
	/* end checkout hooks */

	/* begin my-account hooks */
	add_action( 'woocommerce_before_customer_login_form', 'avada_woocommerce_before_customer_login_form' );
	function avada_woocommerce_before_customer_login_form() {

		global $woocommerce;

		if ( get_option( 'woocommerce_enable_myaccount_registration' ) !== 'yes' ) :
		?>

			<div id="customer_login" class="woocommerce-content-box full-width">

		<?php
		endif;
	}

	add_action( 'woocommerce_after_customer_login_form', 'avada_woocommerce_after_customer_login_form' );
	function avada_woocommerce_after_customer_login_form() {

		global $woocommerce;

		if ( get_option( 'woocommerce_enable_myaccount_registration' ) !== 'yes' ) :
		?>

			</div>

		<?php
		endif;
	}

function avada_top_user_container() {
	global $woocommerce, $current_user;

	echo '<div class="avada_myaccount_user">';
		echo '<span class="myaccount_user_container">';
			echo '<span class="username">';

				if ( $current_user->display_name ) {
					printf( '%s, %s:', __( 'Hello', 'Avada' ), $current_user->display_name );
				} else {
					echo __( 'Hello', 'Avada' );
				}

			echo '</span>';

			if ( Avada()->settings->get( 'woo_acc_msg_1' ) ) {
				echo '<span class="msg">';
					echo Avada()->settings->get( 'woo_acc_msg_1' );
				echo '</span>';
			}

			if ( Avada()->settings->get( 'woo_acc_msg_2' ) ) {
				echo '<span class="msg">';
					echo Avada()->settings->get( 'woo_acc_msg_2' );
				echo '</span>';
			}
			echo '<span class="view-cart">';
				printf( '<a href="%s">%s</a>', get_permalink( get_option( 'woocommerce_cart_page_id' ) ), __( 'View Cart', 'Avada' ) );
			echo '</span>';
		echo '</span>';
	echo '</div>';
}

add_action( 'woocommerce_before_my_account', 'avada_woocommerce_before_my_account' );
function avada_woocommerce_before_my_account( $order_count, $edit_address = false )
{
	global $woocommerce;
	$edit_address = is_wc_endpoint_url( 'edit-address' );

	avada_top_user_container();
	?>

	<ul class="woocommerce-side-nav avada-myaccount-nav">
		<?php if ( $downloads = WC()->customer->get_downloadable_products() ) : ?>
			<li <?php if ( ! $edit_address ) {
				echo 'class="active"';
			} ?>>
				<a class="downloads" href="#">
					<?php _e( 'View Downloads', 'Avada' ); ?>
				</a>
			</li>
		<?php endif;

			if ( function_exists( 'wc_get_order_types' ) && function_exists( 'wc_get_order_statuses' ) ) {
				$customer_orders = get_posts( apply_filters( 'woocommerce_my_account_my_orders_query', array(
					'numberposts' => $order_count,
					'meta_key'    => '_customer_user',
					'meta_value'  => get_current_user_id(),
					'post_type'   => wc_get_order_types( 'view-orders' ),
					'post_status' => array_keys( wc_get_order_statuses() )
				) ) );
			} else {
				$customer_orders = get_posts( apply_filters( 'woocommerce_my_account_my_orders_query', array(
					'numberposts' => $order_count,
					'meta_key'    => '_customer_user',
					'meta_value'  => get_current_user_id(),
					'post_type'   => 'shop_order',
					'post_status' => 'publish'
				) ) );
			}

			if ( $customer_orders ) : ?>
				<li <?php if ( ! $edit_address && ! WC()->customer->get_downloadable_products() ) {
					echo 'class="active"';
				} ?>>
					<a class="orders" href="#">
						<?php _e( 'View Orders', 'Avada' ); ?>
					</a>
				</li>
			<?php endif; ?>
		<li <?php if ( $edit_address || ! WC()->customer->get_downloadable_products() && ! $customer_orders ) {
			echo 'class="active"';
		} ?>>
			<a class="address" href="#">
				<?php _e( 'Change Address', 'Avada' ); ?>
			</a>
		</li>
		<li>
			<a class="account" href="#">
				<?php _e( 'Edit Account', 'Avada' ); ?>
			</a>
		</li>
	</ul>

<div class="woocommerce-content-box avada-myaccount-data">

<?php
}

add_action( 'woocommerce_after_my_account', 'avada_woocommerce_after_my_account' );
function avada_woocommerce_after_my_account( $args )
{
	global $woocommerce, $wp;

	$user = wp_get_current_user();

	?>

	<h2 class="edit-account-heading"><?php _e( 'Edit Account', 'Avada' ); ?></h2>

	<form class="edit-account-form" action="" method="post">
		<p class="form-row form-row-first">
			<label for="account_first_name"><?php _e( 'First name', 'woocommerce' ); ?> <span class="required">*</span></label>
			<input type="text" class="input-text" name="account_first_name" id="account_first_name" value="<?php echo esc_attr( $user->first_name ); ?>" />
		</p>

		<p class="form-row form-row-last">
			<label for="account_last_name"><?php _e( 'Last name', 'woocommerce' ); ?> <span class="required">*</span></label>
			<input type="text" class="input-text" name="account_last_name" id="account_last_name" value="<?php echo esc_attr( $user->last_name ); ?>" />
		</p>

		<p class="form-row form-row-wide">
			<label for="account_email"><?php _e( 'Email address', 'woocommerce' ); ?> <span class="required">*</span></label>
			<input type="email" class="input-text" name="account_email" id="account_email" value="<?php echo esc_attr( $user->user_email ); ?>" />
		</p>

		<p class="form-row form-row-wide">
			<label for="password_current"><?php _e( 'Current Password (leave blank to leave unchanged)', 'woocommerce' ); ?></label>
			<input type="password" class="input-text" name="password_current" id="password_current" />
		</p>

		<p class="form-row form-row-wide">
			<label for="password_1"><?php _e( 'New Password (leave blank to leave unchanged)', 'woocommerce' ); ?></label>
			<input type="password" class="input-text" name="password_1" id="password_1" />
		</p>

		<p class="form-row form-row-wide">
			<label for="password_2"><?php _e( 'Confirm New Password', 'woocommerce' ); ?></label>
			<input type="password" class="input-text" name="password_2" id="password_2" />
		</p>

		<div class="clear"></div>

		<p><input type="submit" class="fusion-button button-default button-medium button default medium alignright"
		          name="save_account_details" value="<?php _e( 'Save changes', 'woocommerce' ); ?>"/></p>

		<?php wp_nonce_field( 'save_account_details' ); ?>
		<input type="hidden" name="action" value="save_account_details"/>

		<div class="clearboth"></div>
	</form>

</div>

<?php

}
	/* end my-account hooks */

	/* begin order hooks */
	remove_action( 'woocommerce_view_order', 'woocommerce_order_details_table', 10 );
	add_action( 'woocommerce_view_order', 'avada_woocommerce_view_order', 10 );
	function avada_woocommerce_view_order( $order_id ) {
		global $woocommerce;

		$order = new WC_Order( $order_id );

		?>
		<div class="avada-order-details woocommerce-content-box full-width">
			<h2><?php _e( 'Order Details', 'woocommerce' ); ?></h2>
			<table class="shop_table order_details">
				<thead>
				<tr>
					<th class="product-name"><?php _e( 'Product', 'woocommerce' ); ?></th>
					<th class="product-quantity"><?php _e( 'Quantity', 'woocommerce' ); ?></th>
					<th class="product-total"><?php _e( 'Total', 'woocommerce' ); ?></th>
				</tr>
				</thead>
				<tfoot>
				<?php
					if ( $totals = $order->get_order_item_totals() ) {
						foreach ( $totals as $total ) :
							?>
							<tr>
								<td class="filler-td">&nbsp;</td>
								<th scope="row"><?php echo $total['label']; ?></th>
								<td class="product-total"><?php echo $total['value']; ?></td>
							</tr>
						<?php
						endforeach;
					}
				?>
				</tfoot>
				<tbody>
				<?php
					if ( sizeof( $order->get_items() ) > 0 ) {

						foreach ( $order->get_items() as $item ) {
							$_product  = apply_filters( 'woocommerce_order_item_product', $order->get_product_from_item( $item ), $item );
							$item_meta = new WC_Order_Item_Meta( $item['item_meta'] );

							?>
							<tr class="<?php echo esc_attr( apply_filters( 'woocommerce_order_item_class', 'order_item', $item, $order ) ); ?>">
								<td class="product-name">
							<span class="product-thumbnail">
								<?php
									$thumbnail = apply_filters( 'woocommerce_cart_item_thumbnail', $_product->get_image() );

									if ( ! $_product->is_visible() ) {
										echo $thumbnail;
									} else {
										printf( '<a href="%s">%s</a>', $_product->get_permalink(), $thumbnail );
									}
								?>
							</span>

									<div class="product-info">
										<?php
											if ( $_product && ! $_product->is_visible() ) {
												echo apply_filters( 'woocommerce_order_item_name', $item['name'], $item );
											} else {
												echo apply_filters( 'woocommerce_order_item_name', sprintf( '<a href="%s">%s</a>', get_permalink( $item['product_id'] ), $item['name'] ), $item );
											}

											// Meta data
											do_action( 'woocommerce_order_item_meta_start', $item['product_id'], $item, $order );
											$order->display_item_meta( $item );
											$order->display_item_downloads( $item );
											do_action( 'woocommerce_order_item_meta_end', $item['product_id'], $item, $order );
										?>
									</div>
								</td>
								<td class="product-quantity">
									<?php echo apply_filters( 'woocommerce_order_item_quantity_html', $item['qty'], $item ); ?>
								</td>
								<td class="product-total">
									<?php echo $order->get_formatted_line_subtotal( $item ); ?>
								</td>
							</tr>
							<?php

							if ( in_array( $order->status, array(
										'processing',
										'completed'
									) ) && ( $purchase_note = get_post_meta( $_product->id, '_purchase_note', true ) )
							) {
								?>
								<tr class="product-purchase-note">
									<td colspan="3"><?php echo apply_filters( 'the_content', $purchase_note ); ?></td>
								</tr>
							<?php
							}
						}
					}

					do_action( 'woocommerce_order_items_table', $order );
				?>
				</tbody>
			</table>
			<?php do_action( 'woocommerce_order_details_after_order_table', $order ); ?>
		</div>

		<div class="avada-customer-details woocommerce-content-box full-width">
			<header>
				<h2><?php _e( 'Customer details', 'woocommerce' ); ?></h2>
			</header>
			<dl class="customer_details">
				<?php
					if ( $order->billing_email ) {
						echo '<dt>' . __( 'Email:', 'woocommerce' ) . '</dt> <dd>' . $order->billing_email . '</dd><br />';
					}
					if ( $order->billing_phone ) {
						echo '<dt>' . __( 'Telephone:', 'woocommerce' ) . '</dt> <dd>' . $order->billing_phone . '</dd>';
					}

					// Additional customer details hook
					do_action( 'woocommerce_order_details_after_customer_details', $order );
				?>
			</dl>

			<?php if (get_option( 'woocommerce_ship_to_billing_address_only' ) === 'no' && get_option( 'woocommerce_calc_shipping' ) !== 'no') : ?>

			<div class="col2-set addresses">

				<div class="col-1">

					<?php endif; ?>

					<header class="title">
						<h3><?php _e( 'Billing Address', 'woocommerce' ); ?></h3>
					</header>
					<address><p>
							<?php
								if ( ! $order->get_formatted_billing_address() ) {
									_e( 'N/A', 'woocommerce' );
								} else {
									echo $order->get_formatted_billing_address();
								}
							?>
						</p></address>

					<?php if (get_option( 'woocommerce_ship_to_billing_address_only' ) === 'no' && get_option( 'woocommerce_calc_shipping' ) !== 'no') : ?>

				</div>
				<!-- /.col-1 -->

				<div class="col-2">

					<header class="title">
						<h3><?php _e( 'Shipping Address', 'woocommerce' ); ?></h3>
					</header>
					<address><p>
							<?php
								if ( ! $order->get_formatted_shipping_address() ) {
									_e( 'N/A', 'woocommerce' );
								} else {
									echo $order->get_formatted_shipping_address();
								}
							?>
						</p></address>

				</div>
				<!-- /.col-2 -->

			</div>
			<!-- /.col2-set -->

		<?php endif; ?>

			<div class="clear"></div>

		</div>

	<?php
	}
/* end order hooks */
/**
* avada_change_product_class - Function to add 'product-list-view' class if the list view is being displayed
* @param  [array]  $classes      - An array containing class names for the particular post / product
* @return [array]  $classes      - An array containing additional class 'product-list-view' if the product view is set to list
*/
add_filter( 'post_class', 'avada_change_product_class' );
if(!function_exists( 'avada_change_product_class' )){
	function avada_change_product_class( $classes ){
		if ( isset( $_SERVER[ 'QUERY_STRING' ] ) ) {
			parse_str( $_SERVER[ 'QUERY_STRING' ], $params );
			if( isset( $params[ 'product_view' ] ) ){
				$product_view = $params[ 'product_view' ];
				if( $product_view == 'list' ){
					$classes[] = 'product-list-view';
				}
			}
		}
		return $classes;
	}
}

// Omit closing PHP tag to avoid "Headers already sent" issues.