2014-07-24 114 views
1

我有一個可溼性粉劑的網站,這對我來說工作得很好。我最近注意到很多功能在WooCommerce中不起作用(即查詢功能,顯示/隱藏框等)。WooCommerce加載錯誤的資產路徑

我已經把它釘到這一點:

的文件需要從正確的路徑加載。看起來像WC在路徑中兩次追加URL。

正確的文件路徑:

http://my-web-site.com/wp-content/plugins/woocommerce/assets/js/frontend/add-to-cart.min.js

現在被稱爲:

http://my-web-site.com/my-web-site.com/wp-content/plugins/woocommerce/assets/js/frontend/add-to-cart.min.js

我明確了源文件,但我找不到任何會導致此路徑與其他呼叫不同。我相信我錯過了一些東西。這裏是代碼:

public function load_scripts() { 
    global $post, $wp; 

    $suffix    = defined('SCRIPT_DEBUG') && SCRIPT_DEBUG ? '' : '.min'; 
    $lightbox_en   = get_option('woocommerce_enable_lightbox') == 'yes' ? true : false; 
    $ajax_cart_en   = get_option('woocommerce_enable_ajax_add_to_cart') == 'yes' ? true : false; 
    $assets_path   = str_replace(array('http:', 'https:'), '', WC()->plugin_url()) . '/assets/'; 
    $frontend_script_path = $assets_path . 'js/frontend/'; 

    // Register any scripts for later use, or used as dependencies 
    wp_register_script('chosen', $assets_path . 'js/chosen/chosen.jquery' . $suffix . '.js', array('jquery'), '1.0.0', true); 
    wp_register_script('jquery-blockui', $assets_path . 'js/jquery-blockui/jquery.blockUI' . $suffix . '.js', array('jquery'), '2.60', true); 
    wp_register_script('jquery-payment', $assets_path . 'js/jquery-payment/jquery.payment' . $suffix . '.js', array('jquery'), '1.0.2', true); 
    wp_register_script('wc-credit-card-form', $assets_path . 'js/frontend/credit-card-form' . $suffix . '.js', array('jquery', 'jquery-payment'), WC_VERSION, true); 

    wp_register_script('wc-add-to-cart-variation', $frontend_script_path . 'add-to-cart-variation' . $suffix . '.js', array('jquery'), WC_VERSION, true); 
    wp_register_script('wc-single-product', $frontend_script_path . 'single-product' . $suffix . '.js', array('jquery'), WC_VERSION, true); 
    wp_register_script('wc-country-select', $frontend_script_path . 'country-select' . $suffix . '.js', array('jquery'), WC_VERSION, true); 
    wp_register_script('wc-address-i18n', $frontend_script_path . 'address-i18n' . $suffix . '.js', array('jquery'), WC_VERSION, true); 
    wp_register_script('jquery-cookie', $assets_path . 'js/jquery-cookie/jquery.cookie' . $suffix . '.js', array('jquery'), '1.3.1', true); 
+0

嘗試更改'$ frontend_script_path = $ assets_path .js/frontend /';'到'$ frontend_script_path = $ assets_path;' – Vijayaragavendran

+0

感謝您的回覆。作出了改變,但它沒有解決它,仍然是相同的路徑加載。 – user3747074

+0

作爲臨時修復,我硬編碼的路徑值,但顯然這只是直到找到更好的解決方案。 – user3747074

回答

0

你最好在定義路徑時使用CONSTANTS。至少它們不能被覆蓋。

例如

define('AD_PATH', WP_PLUGIN_DIR . '/' . basename(dirname(__FILE__))); 

而且你可以使用它,然後徘徊無論:

wp_register_script('chosen', AD_PATH . '/assets/js/chosen/chosen.jquery' . $suffix . '.js', array('jquery'), '1.0.0', true); 
1

我有這個確切的問題,它似乎被Root Relative URLs插件引起的。禁用這個有問題的插件(它似乎對WP Mail也有不利影響)似乎爲我解決了這個問題。