Вот процесс, который мне нравится выполнять: 1. На странице продукта есть флажок, пользователь может принять решение о добавлении пользовательской услуги рядом с продуктом или нет. 2. Если пользователь устанавливает флажок, он добавляет пользовательскую плату в корзину, но оно основано на количестве товара, например: если пользователь добавляет 2 одинаковых товара в корзину, и флажок установлен, он автоматически добавляет в корзину 2-кратную таможенную плату.
Может ли кто-нибудь помочь мне с этим ? (Я стараюсь использовать как можно меньше плагинов, поэтому постараюсь добиться этого с помощью php сниппета)
Вот мой код (он добавляет пользовательскую плату один раз):
<?php
function transfer_fee() {
if ( has_term( 'transfer', 'product_cat' ) ) {
echo '<label><input type="checkbox" name="transfer" value="No">Add transfer (1 USD / person)</label>';
} elseif {
echo 'No transfer';
}
}
add_action( 'woocommerce_before_add_to_cart_quantity', 'transfer_fee' );
function store_transfer_fee( $cart_item, $product_id ) {
if( isset( $_POST['transfer'] ) ) $cart_item['transfer'] = $_POST['transfer'];
return $cart_item;
}
add_filter( 'woocommerce_add_cart_item_data', 'store_transfer_fee', 10, 2 );
function add_checkout_transfer_fee() {
foreach ( WC()->cart->get_cart() as $cart_item_key => $cart_item ) {
if ( isset( $cart_item['transfer'] ) ) {
$itsagift = true;
break;
}
}
if ( $itsagift == true ) WC()->cart->add_fee( 'Transfer', 1 );
}
add_action( 'woocommerce_cart_calculate_fees', 'add_checkout_transfer_fee' );
?>