WordPress как на ладони
Официальная конференция по WordPress в Moскве 18-19 августа, начало в 9:00 wordpress jino

подпись к фото

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 для фото,
а alt="{{ }}" которые в span1 НЕ видны

Вот в этом массиве не смогла настроить

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());
	});

});

и возможно ещё надо что-то менять.

Поможете?

0
Ольга
4 месяца назад
  • -1

    Если в коде не бум бум то не нужно в него и лезть. Потрать 500р закажи кворк.

    Ольга 4 месяца назад

    Где заказать? Не поняла про кворк

    Комментировать
На вопросы могут отвечать только зарегистрированные пользователи. Вход . Регистрация