woocommerce Рассчитайте разницу между суммой в корзине и нашей бесплатной доставкой - PullRequest
0 голосов
/ 07 февраля 2020

Привет. Я хочу рассчитать разницу между суммой в корзине и суммой бесплатной доставки.

Пример: Вам нужно купить на 100 $ больше, чтобы получить бесплатную доставку.

есть этот кусок кода. который прекрасно работает внутри codepen и JSfiddle .. Но при реализации кода внутри WordPress он возвращает NaN? Что я делаю не так?

HTML:

<button id="knap">klik her</button>

<div id="cartPopupWrap">
  <div class="elementor-menu-cart__subtotal">
  <p id="pris" class="woocommerce-Price-amount amount">1,500.20</p>
  </div>
  <p id="fragtPrisIalt"></p>
</div>

СЦЕНАРИЙ:

<script>
document.getElementById('knap').onclick = function(){beregnFriFragt()};

function beregnFriFragt() {
  setTimeout( function () {
    var kurvIalt = document.querySelector('#cartPopupWrap .elementor-menu-cart__subtotal .woocommerce-Price-amount.amount').innerHTML.split(",").join("");
    var fragtPrisIaltTekstholder = document.getElementById('fragtPrisIalt');

    var fragtPrisIalt = "5800" - kurvIalt;

    fragtPrisIaltTekstholder.innerHTML = "Du mangler kun " + fragtPrisIalt + " for at få fri fragt!";
    },1000)
};
</script>

1 Ответ

0 голосов
/ 07 февраля 2020

Если ваш ярлык "Бесплатная доставка", будет отображаться "Бесплатная доставка", когда промежуточная сумма корзины превышает 100.

add_filter( 'woocommerce_package_rates', 'woocommerce_package_rates', 10, 2 );
function woocommerce_package_rates( $rates, $package ) {
    if ( WC()->cart->subtotal < 100 ) {
        foreach($rates as $key => $rate ) {
            if ( $rates[$key]->label === 'Free Shipping' ) {
                unset($rates[$key]);
            }
        }
    }
    return $rates;
}

Вы можете получить больше примеров здесь: Плата за доставку WooCommerce, которая изменяется при выполнении условия

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...