2013-10-03 35 views
1

我有這個Wordpress project,我正在使用WooCommerce Plug-in和WooCommerce Adamas Theme。我有以下問題:WooCommerce雙重加載

我需要從右上角的菜單中用購物車圖標替換單詞「購物車」作爲我的項目的一部分。我的主題在functions.php文件中的作用是創建兩個鏈接到購物車內容PoP Up元素的a鏈接。第一個是「購物車」一詞,第二個是購物車產品櫃檯。

我所嘗試的是添加以下CSS屬性,將第cmagnet-cart類添加到第二個,以包含購物車圖標。

.cmagnet-cart{ 
    background: url('http://www.athlokinisi.gr/images/shopping-cart.png') no-repeat 10px 6px; 
    min-width: 45px; 
    text-align: right; 
    background-size: auto 17px; 
} 

我已將該類添加到最初生成的functions.php cartShow() function的相應元素。正如你所看到的,問題在於,當頁面加載時,它將圖標完美地顯示在位置上,然後通過返回其原始值,重新加載一些WooCommerce參數並將其隱藏。因此,沒有我添加的類。

在PremiumCoding與Adamas主題支持團隊聯繫後,在發送了兩週以上的幾張票之後,向我指出我需要對WooCommerce的JS功能進行更改,可能是cart-fragment.js。問題是,在那裏我沒有任何意義,而且我真的無法找到代碼更改的位置,以便讓Javascript的第二次加載包含我的函數或從雙重加載中排除此元素。那裏的Suport團隊無法進一步幫助我。

我將不勝感激任何幫助以及爲什麼發生這種情況的解釋。這對我來說沒有任何意義,爲什麼要加載一些元素兩次。

要增加兩個額外的信息: - 我知道,當我解決這個問題,我只是隱藏(可能在評論把)第一a鏈接,打印字「車」 - 我從拿到了最後響應支持是以下(如果它是有幫助):

即使你裝WooCommerce阿賈克斯後,用圖標代替文本,文本 會回來。因此,您需要更改WooCommerce js的功能 或者使用WPML插件和 字符串翻譯模塊翻譯所有WooCommerce插件和主題。

擴展信息: 一般是不夠的,我只需更換第一a鏈接,說「車」與車的形象,因爲它並沒有解決我的問題更大,包括以下內容:我爲這個項目使用了希臘語,並且主題有許多uppercase CSS元素。這有一些問題,因爲大寫的希臘語單詞不能自動轉換,因爲您必須從元音中刪除重音符號。因此,我製作了一個jQuery函數,它在文檔就緒的情況下運行並糾正了這個問題,但由於上述雙重加載問題,它將所有文本返回到以前的狀態。

回答

0

我解決它通過添加以下代碼:

//Uppercase correction for Greek language 
    String.prototype.replaceArray = function(find, replace){ 
     var replaceString = this; 
     for (var i = 0; i < find.length; i++){ 
      replaceString = replaceString.replace(find[i], replace[i]); 
     } 
     return replaceString; 
    }; 
    var e = jQuery('a, h2, h3, button, li'), l = e.length, i; 
    if (typeof getComputedStyle == "undefined"){ 
     getComputedStyle = function(e) {return e.currentStyle;}; 
    } 

    for (i=0; i<l; i++){ 
     if (getComputedStyle(e[i]).textTransform == "uppercase"){ 
      var find = ['ά', 'έ', 'ί', 'ή', 'ύ', 'ό', 'ώ']; 
      var replace = ['α', 'ε', 'ι', 'η', 'υ', 'ο', 'ω']; 
      var replaceTo = e[i].innerHTML; 
      replaceTo = replaceTo.replaceArray(find, replace); 
      e[i].innerHTML = replaceTo; 
     } 
    } 
    //Uppercase correction for Greek language 

到文件:

wp-content/plugins/woocommerce/assets/js/frontend/cart-fragments.min.js 

JS文件是一個負責內容的雙重負擔。這可能不是最好的解決方案,而是一個工作的解決方案。