В настоящее время я открываю магазин woocommerce. В основном это то, чего я пытаюсь достичь.
«Это магазин фруктов, для которого они хотят фрукты в корзине (упаковке), клиент выбирает фрукты, которые он хочет (например, 3 предмета), затем он / она выбирает корзину с желаемым количеством (1 среди 3 разных корзин на сайтах). ).
общая стоимость должна быть рассчитана следующим образом: {сумма (фрукты a + фрукты b + фрукты c + цена корзины) * (количество выбранной корзины).
Например: цена на яблоко 3 $, цена на банан 3 $, цена выбранной корзины 1 $, количество корзин: 200. Общая стоимость = (3 + 3 + 1) * 200.
так что это всего лишь пример, как я хотел бы настроить цены.
Любая идея, как этого достичь, я пробовал несколько плагинов, рекомендованных woocommerce, но ни один из них не делает то, что я ищу.
Ваша помощь очень ценится …
я пишу следующий код для (в этом коде корзины идентификатор продукта 24).
Но проблема в том, когда я установил для ex: 10 для корзины. общая стоимость в конце строки корзины на странице корзины точно в конце строки корзины будет выглядеть следующим образом: количество корзины * стоимость корзины 1 $, так что это здесь 10 $.
И общая стоимость (3 $ за бабабу + 3 $ за яблоко + 10 $ за корзину) * КОЛИЧЕСТВО корзины.
Правильный расчет (3 + 3 + 1) * 10.
add_action( 'woocommerce_calculate_totals', 'action_cart_calculate_totals', 10, 1 );
function action_cart_calculate_totals( $cart_object ) {
$targeted_id = 24;
foreach ( WC()->cart->get_cart() as $cart_item ) {
if($cart_item['product_id'] == $targeted_id ){
$qty = $cart_item['quantity'];
break; // stop the loop if product is found
}
}
if ( is_admin() && ! defined( 'DOING_AJAX' ) )
return;
if ( !WC()->cart->is_empty() ):
$cart_object->subtotal *= $qty;
$cart_object->total *= $qty;$cart_object->cart_contents_total *= $qty;
endif;
}
Кажется, ваша проблема подпадает под Custom price calculation
категория.
Есть некоторые wordpress
плагины вы можете получить работу, сделанную ими, как WooPrice Calculator а также Booster для WooCommerce.
Других решений пока нет …