function test() {
global $product;
if($product->is_type('variable')) {
$variations = $product->get_available_variations();
echo '<div class="custom-variations-wrapper">';
foreach($variations as $variation) {
if(isset($variation['display_price'])) {
$variation_id = $variation['variation_id'];
$variation_price = $variation['display_price']; // or 'display_regular_price'
echo '<form action="' . esc_url($product->add_to_cart_url()) . '" method="post" enctype="multipart/form-data">';
echo '<div class="variation" data-variation-id="' . esc_attr($variation_id) . '">';
echo '<p class="price">' . sprintf(__('%s'), wc_price($variation_price)) . '</p>';
echo '<input type="hidden" name="product_id" value="' . esc_attr($product->get_id()) . '" />';
echo '<input type="hidden" name="variation_id" value="' . esc_attr($variation_id) . '" />';
foreach($variation['attributes'] as $attribute => $value) {
echo '<input type="hidden" name="' . esc_attr($attribute) . '" value="' . esc_attr($value) . '">';
}
echo '<button type="submit">' . __('В корзину') . '</button>';
echo '</div>';
echo '</form>';
}
}
echo '</div>';
}
}
add_action('woocommerce_after_shop_loop_item', 'test', 20);
def extractor(store):
for product in store:
price = 0
quantity = 0
for info in store[product]:
quantity += info["quantity"]
price += info["price"]
yield product, quantity, price
stock = {product: {"code": product, "quantity": quantity, "price": price}
for product, quantity, price in extractor(store)}
for product in goods:
print("Название - {}, Код - {code}, Кол-во - {quantity}, Стоимость - {price}"
.format(product, **stock[goods[product]]))
Название - Лампа, Код - 12345, Кол-во - 27, Стоимость - 42
Название - Стол, Код - 23456, Кол-во - 54, Стоимость - 1030
Название - Диван, Код - 34567, Кол-во - 3, Стоимость - 2350
Название - Стул, Код - 45678, Кол-во - 105, Стоимость - 292
price_1 = code['price']
TypeError: string indices must be integers"
price_1 = code['price']находится строковое значение '12345'. СТРОКОВОЕ!!!! А в строке индексом может быть исключительно int-значение. А вы пытаетесь вместо индекса указать опять-таки строку
'price'
code, копируя в него элемент словаря
goods[name], а потом этот же объект внутри цикла используете как объект - итератор цикла -
for code in store:, т.е. перебирая объекты уже совершенно другого словаря
storeлично я не в силах. Чего вы хотели-то от такой дивной конструкции?
for val in dict.values()
for key in dict.keys():
for key in dict:
for code in store:
price_1 = code['price']
for name in goods:
code = goods[name]
print('Название товара:', name, ' Его код:', code)
for code in store:
price_1 = store[code][0]['price']
quantity_1 = store[code][0]['quantity']
summ = price_1 * quantity_1
print('полная стоимость товара:', summ)
for name in goods:
code = goods[name]
print('Название товара:', name, ' Его код:', code)
for code, value in store.items():
price_1 = value[0]['price']
quantity_1 = value[0]['quantity']
summ = price_1 * quantity_1
print('полная стоимость товара:', summ)
$(document).bind( 'mousewheel', function (e) {
var nt = $(document.body).scrollTop()-(e.deltaY*e.deltaFactor*100);
e.preventDefault();
e.stopPropagation();
$(document.body).stop().animate( {
scrollTop : nt
} , 500 , 'easeInOutCubic' );
} )
if(document.querySelector('.home').style.display == 'block') document.querySelector('.exit').style.display = 'none'