Удалить файл JS со страниц редактирования продукта Woocommerce
Я получаю эту ошибку "Uncaught Error: опция" ajax "не разрешена для Select2 при подключении к элементу". при обновлении варианта продукта.
На самом деле есть 2 файла select2.js, один из Woocommerce и другой из плагина 'WR PageBuilder'. Пока я переименовываю файл select2.js в "WR PageBuilder", он работает нормально. Но этот файл требуется для редактора.
Я хочу удалить этот файл JS только со страниц продукта.
Я сделал 'wp_deregister_script()' и 'wp_dequeue_script()', но ничего не произошло.
Вот мой код:
add_action('admin_init', 'functon_to_filter_script');
function functon_to_filter_script() {
global $typenow;
// when editing pages, $typenow isn't set until later!
if (empty($typenow)) {
// try to pick it up from the query string
if (!empty($_GET['post'])) {
$post = get_post($_GET['post']);
$typenow = $post->post_type;
}
}
if( 'product' == $typenow ){
add_action( 'admin_enqueue_scripts', 'deregister_my_script', 100 );
}
}
function deregister_my_script() {
wp_dequeue_script('wr-pagebuilder');
wp_deregister_script('wr-pagebuilder');
}
кто-нибудь может дать мне решение?
1 ответ
Это не сработает, потому что вы используете действия неправильно. Посмотрите здесь для правильного использования действий хуки: хуки в Wordpress
Вы помещаете хук действия admin_enqueue_scripts в хук действия admin_init. Попробуйте взять admin_enqueue_scripts за пределами ловушки admin_init следующим образом:
global $typenow;
add_action( 'admin_enqueue_scripts', 'deregister_my_script', 100 );
function deregister_my_script() {
if (!empty($_GET['post'])) {
$post = get_post($_GET['post']);
$typenow = $post->post_type;
}
if( 'product' == $typenow ){
wp_dequeue_script('wr-pagebuilder');
wp_deregister_script('wr-pagebuilder');
}
}