Следующее будет расширять ваш код для определенных категорий продуктов с помощью условной функции WordPress has_tem()
:
add_action( 'woocommerce_cart_calculate_fees', 'second_item_discount', 10, 1 );
function second_item_discount( $cart ) {
if ( is_admin() && ! defined( 'DOING_AJAX' ) )
return;
$percentage = 20; // 20%
$categories = array('cat1', 'cat2'); // Defined product categories term slugs
$discount = 0;
// Loop through cart items
foreach ( $cart->get_cart() as $cart_item ) {
// When quantity is more than 1 and for defined product categories
if( $cart_item['quantity'] > 1 && has_term( $categories, 'product_cat', $cart_item['product_id'] ) ){
// 20% of the product price as a discount
$discount += wc_get_price_excluding_tax( $cart_item['data'] ) * $percentage / 100;
}
}
if( $discount > 0 )
$cart->add_fee( __( '2nd item discount', 'woocommerce' ) , -$discount );
}
Код помещается в файл function.php вашей активной дочерней темы (или активной темы). Проверено и работает.
в дополнение к элементам блока z-индекс работает на все элементы, которые имеют то, что называет IE, hasLayout читают больше
Если я помню единственную работу правильного Z-индекса над элементами блока, которые абсолютно расположены. Так попытайтесь установить положение раскрывающегося поля к абсолюту и затем попробуйте z-индекс. Если Вам нужно всплывающее окно, чтобы быть в определенном положении, устанавливает переносящийся элемент для расположения родственника. Я встретился с этой проблемой прежде, и я полагаю, что решил ее просто способом, которым я описал.
Самый легкий способ инициировать hasLayout
(упомянутый в другом сообщении), должен добавить zoom: 1
.
При отладке части самого немого IE 6/7 отображают проблемы, я буду иногда просто выводить временный файл
* {
zoom: 1;
}
к моему CSS и видят, изменяется ли что-нибудь. Если это делает я начинаю выборочно добавлять его к элементам, запускающимся с элемента, родителя/детей элемента, и т.д.
zoom
только поддерживается IE, таким образом, довольно "безопасно" иметь в Вашем документе. Это также сохраняет Вас от необходимости сделать что-либо сумасшедшее как абсолютное расположение элементов и т.д.
I've had the exact same problem with both input fields and textareas in IE7, but only if I gave them a width.
I don't remember where I got it from, but I found this solution, it may not be very elegant, but it solved the issue. Just add:
filter:alpha(opacity=100)
to your css of style attribute of the troublesome fields.