错误:附加到 <select> 元素 woocommerce

问题描述 投票:0回答:2

任何人都可以帮助我在这个错误上浪费太多时间,但没有运气

错误:附加到 a 时,Select2 不允许使用选项“ajax” 元素。

将 woocommerce 更新到 3.0.3 后,此错误显示在我的开发人员控制台中,此错误破坏了一些功能,例如无法添加追加销售和交叉文本框。

当我改变我的主题时,这个问题就会消失,我无法改变我的主题。

请帮忙。

jquery ajax wordpress woocommerce jquery-select2
2个回答
2
投票

我在我的 WordPress 网站上遇到了同样的错误,我已经修复了这个问题。

首先我想描述这个错误来自哪里。 从 WC Beta 2 开始,它们已迁移到 Select2 V4。 Select2 V4 基本上与 Select2 V3 兼容,但有一些例外,主要是 AJAX 搜索输入的工作方式。 WooCommerce 有两个受影响的实例,需要对 HTML 标记进行一些更改才能正常运行。 例如

<input type="hidden" id="grant_access_id" name="grant_access_id" data-multiple="true" class="wc-product-search" style="width: 400px;" data-placeholder="<?php esc_attr_e( 'Search for a downloadable product&hellip;', 'woocommerce' ); ?>" data-action="woocommerce_json_search_downloadable_products_and_variations" />

更改为

<select id="grant_access_id" class="wc-product-search" name="grant_access_id[]" multiple="multiple" style="width: 400px;" data-placeholder="<?php esc_attr_e( 'Search for a downloadable product&hellip;', 'woocommerce' ); ?>" data-action="woocommerce_json_search_downloadable_products_and_variations"></select>

在 wordpress 中,我看到 select2 取得了控制权,并且我尝试在 function.php 中禁用 select2 加载。你可以在下面看到我的脚本

add_action( 'admin_enqueue_scripts', 'remove_views_select2' );

function remove_views_select2($hook) {
    if ( ( $hook == 'post.php' || $hook == 'post-new.php' ) ) {
        wp_deregister_script( 'select2' );
        // wp_register_script( 'views-select2-script' , 'http://your-site.com/wp-content/plugins/meta-box/js/select2/select2.min.js', array('jquery'), 3.2);
    }
}

所以这对我来说效果很好。祝你好运 ! 😉


0
投票

在functions.php中添加此代码,问题就为我解决了:)

function mgt_dequeue_stylesandscripts() {
// Only dequeue styles and scripts if we are in the admin area
if (is_admin()) {
    // Dequeue existing Select2 styles and scripts
    wp_dequeue_style('select2');
    wp_deregister_style('select2');

    wp_dequeue_script('select2');
    wp_deregister_script('select2');

    // Enqueue the Select2 styles and scripts from the CDN
    wp_enqueue_style("select2", "https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.0/css/select2.min.css");
    wp_enqueue_script("select2", "https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.0/js/select2.min.js", array('jquery'), null, true);
}

}

add_action('admin_enqueue_scripts', 'mgt_dequeue_stylesandscripts', 100);

© www.soinside.com 2019 - 2024. All rights reserved.