Woocommerce, установить класс доставки в зависимости от количества товаров в корзине - PullRequest
0 голосов
/ 24 октября 2019

Привет, я пытаюсь установить разные классы доставки в корзине, в зависимости от количества товаров в корзине. Я попытался сделать эту работу, добавив следующее в functions.php.

//Set shipping class based on item quantity
add_action( 'woocommerce_cart_calculate_fees', 'shipping_class_and_item_quantity'); 
function shipping_class_and_item_quantity( $cart ) {

    $shipping_class_one = '1-6-flaskor';
    $shipping_class_two = '7-12-flaskor';

    foreach( $cart->get_cart() as $cart_item ) {
        $product = $cart_item['data'];

        if( $cart_item['quantity'] >= 6 ) {
            $product->get_shipping_class() == $shipping_class_one;
        }else if( $cart_item['quantity'] >= 12 ){
            $product->get_shipping_class() == $shipping_class_two;
        }
    }
}

нашел что-то похожее в сети, которое я пытался реконструировать, но, похоже, это не работает, большинствоскорее всего из-за моих ограниченных навыков PHP. Очень благодарен за любую помощь.

1 Ответ

0 голосов
/ 25 октября 2019

Я перечитал ваш вопрос. Будет ли что-то вроде этой работы?

function custom_shipping_cost_tiers( $cost, $method ) {
    $methodlabel = 'Enter the name of your method here' ie 'Flat Rate';

    if ($method->get_label() == $methodlabel) {
        $cart_item_count = WC()->cart->get_cart_contents_count();

        if ( $cart_item_count >= 6) {
            $cost = *SET FEE HERE*;
        }
        else if ( $cart_item_count >= 12){
            $cost = *SET FEE HERE*;
        }
    return $cost;
    }
 }

add_filter( 'woocommerce_shipping_rate_cost', 'custom_shipping_cost_tiers', 10, 2 );

Это должно делать то, что вы ищете.

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