diff --git a/app/code/community/Inchoo/Alternate/Model/Observer.php b/app/code/community/Inchoo/Alternate/Model/Observer.php index a7017d3..bc81aaf 100644 --- a/app/code/community/Inchoo/Alternate/Model/Observer.php +++ b/app/code/community/Inchoo/Alternate/Model/Observer.php @@ -13,17 +13,23 @@ public function alternateLinks() if ($headBlock) { foreach ($stores as $store) { - if ($product) { - $category ? $categoryId = $category->getId() : $categoryId = null; - $url = $store->getBaseUrl() . Mage::helper('inchoo_alternate')->rewrittenProductUrl($product->getId(), $categoryId, $store->getId()); - } else { - $url = $store->getUrl('', array( - '_current' => true, - '_use_rewrite' => true - )); - } - $storeCode = substr(Mage::getStoreConfig('general/locale/code', $store->getId()), 0, 2); - $headBlock->addLinkRel('alternate"' . ' hreflang="' . $storeCode, $url); + if ($product) { + $category ? $categoryId = $category->getId() : $categoryId = null; + $url = $store->getBaseUrl() . Mage::helper('inchoo_alternate')->rewrittenProductUrl($product->getId(), $categoryId, $store->getId()); + } elseif($category) { + $url = $store->getBaseUrl() . Mage::helper('inchoo_alternate')->rewrittenCategoryUrl($category->getId(), $store->getId()); + } else { + $url = $store->getUrl('', array( + '_current' => true, + '_use_rewrite' => true + )); + + } + if((strpos($url, '?') !== false)){ + $url = substr($url, 0, strrpos($url, "?")); + } + $storeCode = Mage::getStoreConfig('general/locale/code', $store->getId()); + $headBlock->addLinkRel('alternate"' . ' hreflang="' . $storeCode, $url); } } return $this;