2017-08-30 72 views
0

好,Woocommerce - 餅乾沒有定義

我得到JS錯誤的 「Cookies沒有定義」,而是 「js.cookie.min.js」 之前 「woocommerce.min.js」 被加載。

我檢查Apache日誌,看看是否有任何錯誤,但沒有。 我沒有緩存插件。

我不知道如何跟蹤這個錯誤找到根本原因,一切似乎確定。

enter image description here

waitForImages是加載另一個JS,但我得到一個錯誤。

我錯過了什麼嗎?提示找到錯誤?

編輯*********

進一步調查

這是JS-cookie中的代碼,由於某種原因,我不明白JS-cookie被設置爲「registeredInModuleLoader 「爲true,但變量」Cookies「尚未定義。

;(function (factory) { 
    var registeredInModuleLoader = false; 
    if (typeof define === 'function' && define.amd) { 
     define(factory); 
     registeredInModuleLoader = true; 
    } 
    if (typeof exports === 'object') { 
     module.exports = factory(); 
     registeredInModuleLoader = true; 
    } 
    if (!registeredInModuleLoader) { 
     var OldCookies = window.Cookies; 
     var api = window.Cookies = factory(); 
     api.noConflict = function() { 
      window.Cookies = OldCookies; 
      return api; 
     }; 
    } 
} /* ... */ 

EDIT 2

我想我找到了問題,但不知道是什麼原因呢。

星期一我把一個從MailChimp需要這個代碼的單表格。 我認爲問題在於「embed.js」,因爲在「define.amd」(上面)條件中指向「embed.js」。刪除這個腳本後,錯誤消失了。

有什麼想法?

<script type="text/javascript" src="//s3.amazonaws.com/downloads.mailchimp.com/js/signup-forms/popup/embed.js" data-dojo-config="usePlainJson: true, isDebug: false"></script> 

<script type="text/javascript">require(["mojo/signup-forms/Loader"], function(L) { L.start({"baseUrl":"mc.us14.list-manage.com","uuid":"xxxxxxxxxxxxxxxxxxxxxxxxx","lid":"xxxxxxxxxx"}) })</script> 

解決

我之前更改Mailchimp腳本的位置到最後一個項目,沒有更多的問題。

謝謝。

回答

1

我改變Mailchimp腳本的位置到最後一個項目</body>之前,沒有更多的問題。

也許mailchiump腳本試圖加載一些尚未加載的東西..

0

重命名文件和更新functions.php

wp-content/plugins/woocommerce/assets/js/jquery-cookie/jquery.cookie.js 
wp-content/plugins/woocommerce/assets/js/jquery-cookie/jquery.cookie.min.js 

到:

wp-content/plugins/woocommerce/assets/js/jquery-cookie/jquery_cookie.js 
wp-content/plugins/woocommerce/assets/js/jquery-cookie/jquery_cookie.min.js 

並添加以下到你的主題功能。PHP文件:

add_action('wp_enqueue_scripts', 'custom_frontend_scripts');function custom_frontend_scripts() {global $post, $woocommerce; 

$suffix = defined('SCRIPT_DEBUG') && SCRIPT_DEBUG ? : '.min'; 
wp_deregister_script('jquery-cookie'); 
wp_register_script('jquery-cookie', $woocommerce->plugin_url() . '/assets/js/jquery-cookie/jquery_cookie' . $suffix . '.js', array('jquery'), '1.3.1', true); 
} 
+1

這是行不通的。我也嘗試了這個頁面中提到的插件https://docs.woocommerce.com/document/jquery-cookie-fails-to-load/ – lcssanches

0
This usually happens when you have 2 versions of jquery being loaded on your page, commonly caused by trying to use google for jquery or themes. This needs to be removed. You cannot reproduce this one with a clean install. 

檢查和確認的jQuery後裝入正確,一次,看到https://docs.woocommerce.com/document/jquery-cookie-fails-to-load/

+0

看到我的編輯2,你認爲那個腳本再次加載jquery嗎? – lcssanches