Я создал интернет-магазин в Woocommerce (wordpress). Это винный магазин, и мне нужно добавить дополнительную стоимость: 0,08 евро за бутылку (продукт).
Я нашел это и скорректировал его, но я не могу умножить количество продуктов (бутылок) с 0,08 евро. В корзине я получаю дополнительную строку, но значение равно 0.
Может ли кто-нибудь объяснить мне, что я делаю неправильно?
function get_cart_contents_count() { return apply_filters( 'woocommerce_cart_contents_count', $this->cart_contents_count ); } function woo_add_cart_fee() { global $woocommerce; $woocommerce->cart->add_fee( __('Custom', 'woocommerce'), $get_cart_contents_count * 0.08 ); } add_action( 'woocommerce_cart_calculate_fees', 'woo_add_cart_fee' );
Попробуйте этот код в своих функциях.php, но он будет применяться по всей тележке
// Hook before adding fees add_action('woocommerce_cart_calculate_fees' , 'add_custom_fees'); function add_custom_fees( WC_Cart $cart ){ $fees = 0.08; $cart->add_fee( 'Handling fee', $fees); }
EDIT: Чтобы умножить это с каждым продуктом, сделайте что-то вроде
add_action('woocommerce_cart_calculate_fees' , 'add_custom_fees'); function add_custom_fees( WC_Cart $cart ){ $fees = 0; foreach( $cart->get_cart() as $item ){ $fees += $item[ 'quantity' ] * 0.08; } if( $fees != 0 ){ $cart->add_fee( 'Handling fee', $fees); } }
Вы говорите о добавлении дополнительной платы в корзину. Здесь вы можете получить всю связанную информацию от Доктора Woocommerce .