Удалить файл 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');
    }

}
Другие вопросы по тегам