WooCommerce: исключить товар из порогового значения для бесплатной доставки - PullRequest
0 голосов
/ 11 июля 2020

Я установил порог из 3 предметов для кого-то в Великобритании, чтобы получить бесплатную доставку. Каждый раз, когда кто-то добавляет продукт из определенной категории c, я автоматически добавляю продукт в его корзину, которая является бесплатным подарком.

Моя проблема в том, что я пытаюсь исключить этот бесплатный подарок из порогового количества поскольку в настоящее время это подсчитывается, и люди получают бесплатную доставку, не имея в корзине 3 фактических платных товаров.

Я не уверен, как я могу исключить продукт с идентификатором 29 из подсчета, поэтому любая помощь будет принята с благодарностью.

add_action( 'woocommerce_before_cart', 'ds_free_shipping_cart_notice' );
  
function ds_free_shipping_cart_notice() {
    $threshold = 3;
    $current = WC()->cart->get_cart_contents_count();
    $billing_country = WC()->customer->get_billing_country();
    if ( $current < $threshold && WC()->customer->get_billing_country() == 'GB' ) {
        wc_print_notice( 'Nearly there! Order ' . ( $threshold - $current ) . ' more and shipping is on us', 'notice' );
    }
    
}

1 Ответ

0 голосов
/ 12 июля 2020

У меня нет woocommerce, настроенной для проверки этого, но вам нужен именно такой тип logi c:

$cart_items = WC()->cart->get_cart();
$current = WC()->cart->get_cart_contents_count();
foreach($cart_items as $item => $values) { 
  if ($values['product_id'] == 29) {
   --$current;
  }
} 

Этот ответ должен помочь

Однако в целом это довольно неплохой подход, так как вам нужно будет менять жестко заданный идентификатор продукта каждый раз, когда вы предлагаете новый подарок. Было бы лучше добавить к своим продуктам настраиваемое поле под названием «Бесплатный подарок» или что-то подобное, установить это значение по мере необходимости для предметов, предлагаемых в качестве бесплатных подарков, а затем настроить код, чтобы исключить любой из этих предметов из бесплатной доставки. .

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