Поставить в очередь скрипт AWS
Я работаю над интеграцией интернет-магазина Amazon (Amazon Checkout) на сайте WordPress с использованием документации Amazon здесь . Прошло некоторое время с тех пор, как я работал с постановкой в очередь внешних JScripts. Мне нужно загрузить два сценария с Amazon. Я добавил немного кода в functions.php , но я, кажется, допустил ошибку, и я продолжаю получать такие ошибки, как:
TypeError: 'undefined' is not a function (evaluating '$(jQuery(document).find("#globalParameters"))').
На merchant_cart.js:5
Вот код:
function img_scripts_with_jquery()
{
// Register the script like this for a theme:
wp_register_script( 'aws-cba', 'https://images-na.ssl-images-amazon.com/images/G/01/cba/js/common/cba_shared.js', array( 'jquery' ));
// For either a plugin or a theme, you can then enqueue the script:
wp_enqueue_script( 'aws-cba' );
//second script
wp_register_script( 'aws-merchant-cart', 'https://images-na.ssl-images-amazon.com/images/G/01/cba/js/shoppingcart/merchant_cart.js', array( 'jquery' ));
// For either a plugin or a theme, you can then enqueue the script:
wp_enqueue_script( 'aws-merchant-cart' );
}
add_action( 'wp_enqueue_scripts', 'img_scripts_with_jquery' );
Какую ошибку в кодировании я совершаю здесь? в порядке ли постановка в очередь этих двух внешних сценариев, нуждающихся в jQuery?
Обновление
Загрузка скриптов в нижний колонтитул улучшает ситуацию, но когда я добавил кнопку для загрузки корзины, я все равно получил ту же ошибку. Текущий сценарий теперь:
/Enqueue AWS Scripts
function img_scripts_with_jquery()
{
// Register the First Script:
wp_register_script( 'aws-cba', 'https://images-na.ssl-images-amazon.com/images/G/01/cba/js/common/cba_shared.js', array( 'jquery' ),'version', true );
// Enqueue it:
wp_enqueue_script( 'aws-cba' );
//Register Second Script
wp_register_script( 'aws-merchant-cart', 'https://images-na.ssl-images-amazon.com/images/G/01/cba/js/shoppingcart/merchant_cart.js', array( 'jquery' ), 'version', true);
// Enqueue this one too:
wp_enqueue_script( 'aws-merchant-cart' );
}
add_action( 'wp_enqueue_scripts', 'img_scripts_with_jquery' );
Обновление II
Firebug описал ошибку следующим образом:
TypeError: $ is not a function
https://images-na.ssl-images-amazon.com/images/G/01/cba/js/shoppingcart/merchant_cart.js?ver=version
Line 5
Похоже на конфликт jQuery..
1 answers
Попробуйте сохранить jQuery.noConflict();
как jquery-no-conflict.js
. Затем поставьте все в очередь с соответствующими зависимостями:
<?php
function img_scripts_with_jquery() {
wp_enqueue_script(
'jquery-no-conflict',
'path/to/jquery-no-conflict.js',
array(
'jquery'
),
'version',
true
);
wp_enqueue_script(
'aws-cba',
'https://images-na.ssl-images-amazon.com/images/G/01/cba/js/common/cba_shared.js',
array(
'jquery-no-conflict'
),
'version',
true
);
wp_enqueue_script(
'aws-merchant-cart',
'https://images-na.ssl-images-amazon.com/images/G/01/cba/js/shoppingcart/merchant_cart.js',
array(
'jquery-no-conflict'
),
'version',
true
);
}
add_action( 'wp_enqueue_scripts', 'img_scripts_with_jquery' );