подпись к фото
WC_Product::get_image дает мне шанс подписать фото на сайте, но поскольку ни бум-бум в коде, а всё делала империческим путем, не смогла встроить $attr = array()
в свой сайт, поскольку имеются различия, которые понять не под силу.
<div class="span5"> <div class="row"> <div class="span1"> <ul class="thumbnails mainimage" id="product_images"> {% if(current_type and current_color) %} {% for key, imageType in product.products[current_type].colors[current_color].images %} {% if(key != 'theme') %} {% for image in imageType %} <li class="producthtumb"> <a href="#"> <img src="{{ image.big }}" alt="{{ product.products[current_type].name }} {{ product.name }} за {{ prices.old_price }} {{ product.products[current_type].colors[current_color].sizes[current_size].price }} рублей в интернет магазине Принт виды с разных сторон" title="{{ product.products[current_type].name }} {{ product.name }} за {{ prices.old_price }} {{ product.products[current_type].colors[current_color].sizes[current_size].price }} рублей"> </a> </li> {% endfor %} {% endif %} {% endfor %} {% endif %} </ul> </div> <div class="span4"> <span> <ul class="thumbnails mainimage" id="product_images_main" title="{{ product.name }} ФОТО Увеличить Принт"> </ul> </span> </div> </div> </div>
Здесь в span4
- невозможно встроить alt для фото,
Вот в этом массиве не смогла настроить
var productPrice = productOldPrice = 0, product_doc_info = { 'product_info': {}, 'print_type': {}, 'size': {} }; function setQty(qty) { if (qty < 1) { qty = 1; } $('#product_price').html(productPrice * qty + ' ' + getDefaults.syntax.global.currency); $('#product_old_price').html(productOldPrice * qty + ' ' + getDefaults.syntax.global.currency); return qty; } productPageEvents = { 'go_to_cart': function () { document.location = cartRoute; }, 'product_info_changed': function (info) { var $productTitle = $('#product_title'); $productTitle.html(info.name); if (info.author) { $productTitle.append(' (by ' + info.author + ')'); } if (info.article) { $('#product_article').html(info.article); } }, 'product_colors_changed': function (colors, cColor) { var $productColor = $('#product_color'); $productColor.find('div').remove(); $.each(colors, function (key, color) { var checked = false; if (key == cColor) { checked = true; } var div = $('<div />').addClass('product-wrap') .append($('').addClass('radio').attr('name', 'radio-color').attr('id', key).val(color.tkey).prop('checked', checked)) .append($('<label />').attr('for', color.tkey).css('background', color.hex)); $productColor.append(div); }); }, 'product_sizes_changed': function (sizes, cSize) { var $productSize = $('#product_size'); $productSize.find('div').remove(); $.each(sizes, function (key, size) { var checked = false, longName = (size.name.search('mm') != -1 || size.name.search('size') != -1); if (key == cSize) { checked = true; } var div = $('<div />').addClass('product-wrap') .append($('').addClass('radio').attr('name', 'radio-size').attr('id', key).val(key).prop('checked', checked)) .append($('<label />').addClass(longName ? 'long' : '').attr('for', key).text(size.name)); $productSize.append(div); }); }, 'product_category_changed': function (cCategory) { var $holder = $('.info ul.tabs'), menuItems = product.getValidMenuItems(); $holder.find('li').remove(); $.each(menuItems, function(index, item) { var $li = $('<li />').attr('data-tab', 'category_' +index) .append($('<span />').text(item.title)); if (index == parseInt(cCategory)) { $li.addClass('active'); } $holder.append($li); }); }, 'product_types_changed': function (cProduct) { var $holder = $('.info .info-holder'), categoryIndex = product.getCategory(), categoryItems = product.getValidMenuItems(), products = product.getProducts(); $holder.find('a').remove(); $.each(categoryItems, function(index, category) { var $div = $('<div />').addClass('tab-pane owl-carousel').attr('id', 'category_' + index); if (index == parseInt(categoryIndex)) { $div.addClass('active'); } $.each(category.children, function(index, childGroup) { $.each(childGroup.children, function(key, tkey) { var $a = $('<a />').addClass('info-carousel-item').attr('href', '#').attr('data-tkey', tkey) .append($('<div />').addClass('info-carousel-item-img') .append($('<img />').attr('src', getImage({article:product.info.article}, tkey, product.currentColor)))) .append($('<span />').text(products[tkey].name)); if (tkey == cProduct) { $a.addClass('active'); } $div.append($a); }) }); $holder.append($div); }); var $owl = $('.owl-carousel:visible'); $owl.owlCarousel({ items: 6, nav: true, navText: [ "<i class='fa fa-angle-left'></i>", "<i class='fa fa-angle-right'></i>" ], dots: false }); }, 'product_images_changed': function (images) { var $imagesHolder = $('#product_images'), $mainImagesHolder = $('#product_images_main'), showBack = !product.getInfo().has_front && product.getInfo().has_back, showBackIndex = 0; $imagesHolder.find('li').remove(); $mainImagesHolder.find('li').remove(); if (!product.currentSize) { var obj = product.info.products[product.currentProduct].colors[product.currentColor].sizes; var firstSize = obj[Object.keys(obj)[0]]; product.setSize(firstSize.tkey, false); } $.each(images, function (key, imageHolder) { if (imageHolder.length && key != 'theme') { $.each(imageHolder, function (index, image) { if (showBack && showBackIndex == 0) { if (image._type == 'back') { showBackIndex = index; } } var $mainImageElement = $('<li />').addClass('span4').hide() .append($('<a />').attr('href', image.big).attr('rel', 'group') .append($('<img />').attr('src', image.big))); var $thumbnailElement = $('<li />').addClass('producthtumb') .append($('<a />').addClass('thumbnail').attr('data-image', image.big) .append($('<img />').attr('src', image.small))); $mainImagesHolder.append($mainImageElement); $imagesHolder.append($thumbnailElement); }); } }); // Product Thumb $mainImagesHolder.find('li').hide(); $mainImagesHolder.find('li').eq(showBackIndex).stop().show(); $('ul.mainimage li.producthtumb').click(function () { var thumbindex = $(this).index(); $mainImagesHolder.find('li').stop().hide(); $mainImagesHolder.find('li').eq(thumbindex).stop().show(); }); changeProductInfo(); }, 'product_price_changed': function (price) { var $productPriceHolder = $('#product_price'), $productOldPriceHolder = $('#product_old_price'), $productQty = $('#product_qty'); productPrice = price; productOldPrice = product.products[product.currentProduct].colors[product.currentColor].sizes[product.currentSize].old_price; $productPriceHolder.html(productPrice * $productQty.val() + ' ' + getDefaults.syntax.global.currency); if (productOldPrice != 0) { $productOldPriceHolder.html(productOldPrice * $productQty.val() + ' ' + getDefaults.syntax.global.currency); $productOldPriceHolder.show(); } else { $productOldPriceHolder.hide(); } } }; onCartUpdate.push(function () { var isFound = isItemInCart(), $cartButton = $('#cart_add_button'); if (isFound) { $cartButton.removeClass('btn-primary').addClass('btn-success').html(getDefaults.syntax.product.openInCart); } else { $cartButton.removeClass('btn-success').addClass('btn-primary').html(getDefaults.syntax.product.addToCart); } } ); // Product and print type info function changeProductInfo() { var $modal = $('#popup-info-product'); $.ajax({ url: '/doc', type: 'POST', data: { 'path': 'product_info_new/' + product.getProduct() }, dataType: 'json', success: function (response) { if (typeof response.result.text != 'undefined') { $modal.find('.product-info').html(response.result.text); product_doc_info['product_info'][product.getProduct()] = response.result.text; } } }); if (typeof product.products[product.getProduct()] != 'undefined' && typeof product.products[product.getProduct()].colors[product.getColor()] != 'undefined' && typeof product.products[product.getProduct()].colors[product.getColor()].print_type != 'undefined' ) { var printTypeColor = product.products[product.getProduct()].colors[product.getColor()].print_type; $.ajax({ url: '/doc', type: 'POST', data: { 'path': 'print_type_new/' + printTypeColor }, dataType: 'json', success: function (response) { if (typeof response.result.text != 'undefined') { $modal.find('.product-print').html(response.result.text); product_doc_info['print_type'][printTypeColor] = response.result.text; } } }); } if (typeof product_doc_info['size'][product.getProduct()] == 'undefined') { product_doc_info['size'][product.getProduct()] = 'Загрузка...'; $.ajax({ url: '/doc/size_new', type: 'POST', data: { 'path': product.getProduct() + '_size' }, dataType: 'json', success: function (response) { if (typeof response.result.text != 'undefined') { $('#sizes_table').find('.body').html('').append(response.result.text); product_doc_info['size'][product.getProduct()] = response.result.text; } } }); } } // Render related products function getRelatedProducts(id) { var $related = $('#related'); $.ajax({ url: '/related?id=' + id, type: 'GET', dataType: 'json', success: function (data) { var maxItems = (data.items.length > 10) ? 10 : 5, $holder = $related.find('.more-product-wrapper'); $.each(data.items, function (key, item) { if (key < maxItems) { $holder.append('<div class="more-product-item"><a href="/product/' + item.product.type + '/' + item.article + '?color=' + item.product.color + '"><img class="img-responsive" src="item.product.color}) + '" alt="' + item.name + '" title="' + item.name + '"><span>' + item.name + '</span></a></div>'); } }); $related.removeClass('hidden'); } }); } $(function () { getRelatedProducts(product.info.article); // Fancybox init $('#product_images_main').find('li a').fancybox(); // Sizes table info $('#sizes_table_link').on('click', function () { var sizes_html = (typeof product_doc_info.size[product.getProduct()] != 'undefined') ? product_doc_info.size[product.getProduct()] : ''; $('#sizes_table').find('.body').html('') .append(sizes_html); }); // Info tabs $('.info .tabs').on('click', 'li', function () { $('.info .tabs li, .info .tab-pane').removeClass('active'); $(this).addClass('active'); $('.info .tab-pane#' + $(this).attr('data-tab')).addClass('active'); $('.owl-carousel:visible').owlCarousel({ items: 6, nav: true, navText: [ "<i class='fa fa-angle-left'></i>", "<i class='fa fa-angle-right'></i>" ], dots: false }); }); // Producttype select $('.info').on('click', '.info-carousel-item', function() { $('.info .info-holder').find('a').removeClass('active'); $(this).addClass('active'); var productTypeName = $('.productname'); if (productTypeName) { productTypeName.text(product.getCurrentProduct().name + ' ' + product.info.name); } product.setProduct($(this).attr('data-tkey')); return false; }); // Color select $('#product_color').on('click', 'input', function() { product.setColor($(this).val()); }); // Size select $('#product_size').on('click', 'input', function() { product.setSize($(this).val()); }); });
и возможно ещё надо что-то менять.
Поможете?
Если в коде не бум бум то не нужно в него и лезть. Потрать 500р закажи кворк.
Где заказать? Не поняла про кворк