Использовать js-скрипт из одного плагина в другом плагине

У меня есть два плагина, которые работают вместе (один из них является дополнением). В «главном» плагине у меня есть функция js в файле, расположенном так:

wp-plugins/main-plugin-name/js/main-js.js 

Если мой дополнительный плагин, у меня есть другой файл .js, расположенный так:

 wp-plugins/secondary-plugin-name/js/sec-js.js 

В этом файле .js второго плагина я хочу использовать функцию, расположенную в первом файле .js. В принципе, я хочу, чтобы функция была доступна глобально для обоих плагинов.

Я уже зарегистрировал и установил первый скрипт .js, используя основной плагин, но я не могу заставить вторичный плагин найти функцию с первого и использовать ее.

Вот мой текущий код:

В первом плагине:

 add_action( 'wp_enqueue_scripts', 'tps_enqueue_frontend_scripts'); function tps_enqueue_frontend_scripts() { $plugin_url = plugin_dir_url( __FILE__ ); wp_register_script( 'tps-space-rentals', $plugin_url.'/js/tps-space-rentals.js', array('jquery', 'jquery-ui-core', 'jquery-ui-datepicker', 'jquery-validate', 'jquery-payment', 'jquery-ui-dialog', 'jquery-ui-tooltip') ); wp_enqueue_script( 'tps-space-rentals' ); } 

В моем другом плагине у меня есть следующее:

 add_action( 'wp_enqueue_scripts', 'tps_stripe_pay_scripts_enq', 20); function tps_stripe_pay_scripts_enq() { $plugin_url = plugin_dir_url( __FILE__ ); wp_register_script( 'tps-stripe-payments', $plugin_url.'js/tps-stripe-payments.js', array('jquery', 'tps-space-rentals'), '', true ); wp_enqueue_script( 'tps-stripe-payments' ); } 

Единственное, что определяет, доступна ли функция в другом скрипте, – это если она была загружена до того, как другой скрипт попытается ее использовать. Это просто вопрос размещения <script></script> для скрипта с функцией, которую нужно использовать перед тегом скрипта, который должен его использовать *.

Самый надежный способ гарантировать, что сценарий, на котором вы полагаетесь, загрузился до того скрипта, который ему нужен, – это использовать аргумент зависимостей wp_enqueue_script() :

 wp_enqueue_script( 'dependency', '/path/to/dependency.js' ); wp_enqueue_script( 'script', '/path/to/script.js', array( 'dependency' ) ); 

Третий аргумент – это массив дескрипторов (первый аргумент) для скриптов, от которых зависит скрипт. Это гарантирует, что 'dependency' будет загружаться всякий раз, когда 'script' находится в очереди и перед ним.

* Если вы не делаете что-то необычное, как асинхронно загружаете скрипты, WordPress не поддерживает wp_enqueue_script() из коробки.