与WPBakery页面生成器和blockUI冲突-未定义默认值的woo-commerce结账和购物车页面



我遇到了一个问题,因为没有定义$.blockUI.defaults,所以woo-commerce中的结账不起作用,如果我禁用WPBakery,它会起作用,但网站的其他方面当然不起作用。

当尝试更新时,它也会在购物车中的blockUI上出错。

任何帮助都将是惊人的!

我已经禁用了所有插件,除了WPBakery页面生成器之外没有任何冲突。

我以为这是jQuery的旧版本,所以已经更新到最新版本。

很遗憾,找不到有关此问题的任何信息。

可以在此处将产品添加到购物车:

https://www.actionart.com.au/product/portrait-poster-in-hearts-text-overlay/

https://www.actionart.com.au/checkout/

完整错误消息

checkout.min.js?ver=3.5.3:12未捕获类型错误:无法读取未定义的属性"defaults"在HTMLDocument上。(checkout.min.js?ver=3.5.3:12)着火了(jquery-1.12.4.js:3232)在Object.fireWith〔as resolveWith〕(jquery-1.12.4.js:3362)位于Function.ready(jquery-1.12.4.js:3582)在HTMLDocument.com上完成(jquery-1.12.4.js:3617)

面对同样的问题,我创建了一个MU插件,按照这里的步骤,根据当前页面的URL停用插件。

首先,在MU插件文件夹(/wp-content/MU-plugins)中创建一个PHP文件(例如,plugin-filter by page.PHP)。

在这个文件中,粘贴从上面提供的链接修改的以下代码:

<?php
// returns the path of the request URI without the query string
$request_uri = parse_url( $_SERVER['REQUEST_URI'], PHP_URL_PATH );
$is_admin = strpos( $request_uri, '/wp-admin/' );
// add filter in front pages only
if( false === $is_admin ){
add_filter( 'option_active_plugins', 'your_option_active_plugins' );
}
/**
* Filters active plugins
*
* @param array   $plugins An array of active plugins.
*/
function your_option_active_plugins( $plugins ){
global $request_uri;
$is_woo_checkout_page = strpos( $request_uri, '/checkout/' );
$unnecessary_plugins = array();
// filter out WPBakery Page Builder plugin on WooCommerce Checkout page
if( false !== $is_woo_checkout_page ){
$unnecessary_plugins[] = 'js_composer/js_composer.php';
}
foreach ( $unnecessary_plugins as $plugin ) {
$k = array_search( $plugin, $plugins );
if( false !== $k ){
unset( $plugins[$k] );
}
}
return $plugins;
}

在写这篇文章的时候,我在自己的网站上使用了这个,该网站使用了桥主题的WordPress 5.0.3、WooCommerce 3.5.3和WPBakery Page Builder 5.6。

或者,您可以使用其他人通过同一链接创建的插件。

最新更新