Конфликт с WPBakery Page Builder и blockUI - по умолчанию не определено оформление заказа и страницы корзины - PullRequest
0 голосов
/ 03 января 2019

У меня проблема с тем, что оформление заказа в woo-commerce не работает из-за того, что $ .blockUI.defaults не определен, если я отключаю WPBakery, он работает, но другие аспекты сайта, конечно, не работают.

Это также приводит к ошибкам в blockUI в корзине при попытке обновить его.

Любая помощь будет удивительной!

Я отключил все плагины и не имел никаких конфликтов, кроме WPBakery Page Builder.

Возможно, это была более старая версия 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 Uncaught TypeError:Невозможно прочитать свойство 'defaults' из undefined в HTMLDocument.(checkout.min.js? ver = 3.5.3: 12) при пожаре (jquery-1.12.4.js: 3232) в Object.fireWith [as resolWith] (jquery-1.12.4.js: 3362) в функции.готов (jquery-1.12.4.js: 3582) на HTMLDocument.completed (jquery-1.12.4.js: 3617)

1 Ответ

0 голосов
/ 16 января 2019

Столкнувшись с той же проблемой, я создал плагин MU для деактивации плагинов на основе URL текущей страницы, выполнив шаги здесь .

Сначала создайте файл PHP (например, plugin-filter-by-page.php) в папке плагинов MU (/wp-content/mu-plugins).

В этом файле вставьте следующий код, который был изменен по приведенной выше ссылке:

<?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 из темы Bridge.

Кроме того, вы можете использовать плагины, созданные другими пользователями, по той же ссылке .

...