Woocommerce产品的自定义字段网址选项缩略图
目前,我正在为会员产品使用Woocommerce插件。例如,我希望能够点击主页上的缩略图并直接转到亚马逊。目前它的设置是这样的,一旦点击它,我的网站上的产品详细信息页面。从那里你可以到达亚马逊页面。然而,点击次数越少越好。Woocommerce产品的自定义字段网址选项缩略图
所以我在content-product.php页面找到了钩子。我所做的是将所有内容都包装在一个URL中,并使用自定义字段添加到URL中。不按预期工作。会发生什么情况是,只有在使用销售闪存选项之一时,URL才会转到亚马逊。关闭时,该URL不会转到亚马逊,而是转到我网站上的产品页面。我不知道放置URL包装的地方。
所以我试图寻找当前控制缩略图的<a href="<?php the_permalink(); ?>">
。我将函数追溯到woocommerce-template.php文件。那就是我陷入死胡同的地方。我不确定当前缩略图的位置。
这是我修改后的代码,在内容product.php页作品部分:
<div class="thumbnail-wrapper">
<a href="<?php echo get_post_meta($post->ID, 'URLThumb', true); ?>">
<?php
/**
* woocommerce_before_shop_loop_item_title hook
*
* @hooked woocommerce_show_product_loop_sale_flash - 10
* @hooked woocommerce_template_loop_product_thumbnail - 10
*/
do_action('woocommerce_before_shop_loop_item_title');
?>
</a>
</div>
这里是缩略图功能,我似乎无法进一步深入,找到现有<a href="<?php the_permalink(); ?>">
改变。这是在woocommerce-template.php页面上。
if (! function_exists('woocommerce_template_loop_product_thumbnail')) {
/**
* Get the product thumbnail for the loop.
*
* @access public
* @subpackage Loop
* @return void
*/
function woocommerce_template_loop_product_thumbnail() {
echo woocommerce_get_product_thumbnail();
}
}
想通了一个工作。由于SalesFlash图像是被触发的图像,我只是使用空白的PNG图像覆盖产品图像的顶部。把我所有的产品都变成了销售物品,它很有效。不完美,但我不需要销售图标。
但是如果有人确实知道正确的编程解决方案,我会改变它。谢谢。
本上的内容product.php为我工作不求回报的元数据
<div class="thumbnail-wrapper"><a href="<?php echo $product->product_url; ?>">
<?php
/**
* woocommerce_before_shop_loop_item_title hook
*
* @hooked woocommerce_show_product_loop_sale_flash - 10
* @hooked woocommerce_template_loop_product_thumbnail - 10
*/
do_action('woocommerce_before_shop_loop_item_title');
?> </a>
</div
我也做了同样的事情中环路/添加到cart.php的“添加更多” 和 “详细信息” 中的线21
get_permalink()
和57$link
分别替换它们像这样的按钮: LINE 27
$details = sprintf('<a href="%s" rel="nofollow" title="%s" class="details">%s</a>', get_permalink(), apply_filters('yit_details_button', __('Details', 'yit')), apply_filters('yit_details_button', __('Details', 'yit')));
替换$产品 - > product_url 和在管线57
$add_to_cart = sprintf('<a href="%s" rel="nofollow" class="view-options" title="%s">%s</a>', apply_filters('yit_external_add_to_cart_link_loop', $link, $product), $label, $label);
get_permalink()更换再次$产品 - > product_url $链接。 我没有问题,直到现在。我想知道你是否最终找到了一个明确的解决方案,所以我们可以为thumnails和产品图像做同样的事情,而不在其上添加空白图像。我没有太多的代码,所以如果有人知道如何将一个外部woocommerce.php
文件位置:可湿性粉剂内容/主题/“您的主题” /主题/ woocommerce正面page.Thank你
文件名上的产品图片链接。php
解决方案:通过查询产品类型来定位外部产品,当外部产品在$ product_url中循环时,以及在简单/变量时在get_permalink()中循环。此代码还说明了在新选项卡中打开外部产品的情况。
我打算发布代码看起来像之前的版本的一个版本,然后再添加我的添加+修改。在我的主题中,我粘贴的第一行代码存在于woocommerce.php的第374行(这取决于你的主题,并且有些主题可能没有修改woocommerce.php文件,如果是这样的话,只需拖动woocommerce .PHP到从插件主题目录
码添加/修改前:
function woocommerce_template_loop_product_thumbnail() {
global $product, $woocommerce_loop;
$i = 0;
$attachments = array();
$attachments[] = get_post_thumbnail_id();
$attachments = array_merge($attachments, $product->get_gallery_attachment_ids());
$original_size = wc_get_image_size('shop_catalog');
if ($woocommerce_loop['view'] == 'masonry_item') {
$size = $original_size;
$size['height'] = 0;
YIT_Registry::get_instance()->image->set_size('shop_catalog', $size);
}
switch ($woocommerce_loop['products_layout']) {
case 'zoom':
if(isset($attachments[1])) {
echo '<a href="' . get_permalink() . '" class="thumb">' . woocommerce_get_product_thumbnail() . '</a>';
echo '<div class="attachments-thumbnail">';
while($i < 3){
if(! isset($attachments[ $i ])) break;
$src = wp_get_attachment_image_src($attachments[ $i ], 'shop_catalog');
$active = ($i == 0) ? 'active' : '';
echo '<div class="single-attachment-thumbnail ' . $active . '" data-img="' . $src[0] . '">';
yit_image("id=$attachments[$i]&size=shop_thumbnail&class=image-hover");
echo '</div>';
$i++;
}
echo '</div>';
}
else {
echo '<a href="' . get_permalink() . '" class="thumb">' . woocommerce_get_product_thumbnail() . '</a>';
}
break;
case 'flip':
if(isset($attachments[1])) {
echo '<a href="' . get_permalink() . '" class="thumb backface"><span class="face">' . woocommerce_get_product_thumbnail() . '</span></a>';
echo '<span class="face back">';
yit_image("id=$attachments[1]&size=shop_catalog&class=image-hover");
echo '</span></a>';
}
else {
echo '<a href="' . get_permalink() . '" class="thumb"><span class="face">' . woocommerce_get_product_thumbnail() . '</span></a>';
}
break;
}
码添加/修改后:
function woocommerce_template_loop_product_thumbnail() {
global $product, $woocommerce_loop;
if(!is_single()) {
if($product->is_type('external')){
$product_url = $product->get_product_url() . '"target="_blank""';
} else($producenter code heret_url = get_permalink());
} else ($product_url = get_permalink());
$i = 0;
$attachments = array();
$attachments[] = get_post_thumbnail_id();
$attachments = array_merge($attachments, $product->get_gallery_attachment_ids());
$original_size = wc_get_image_size('shop_catalog');
if ($woocommerce_loop['view'] == 'masonry_item') {
$size = $original_size;
$size['height'] = 0;
YIT_Registry::get_instance()->image->set_size('shop_catalog', $size);
}
switch ($woocommerce_loop['products_layout']) {
case 'zoom':
if(isset($attachments[1])) {
echo '<a href="' . $product_url . '" class="thumb">' . woocommerce_get_product_thumbnail() . '</a>';
echo '<div class="attachments-thumbnail">';
while($i < 3){
if(! isset($attachments[ $i ])) break;
$src = wp_get_attachment_image_src($attachments[ $i ], 'shop_catalog');
$active = ($i == 0) ? 'active' : '';
echo '<div class="single-attachment-thumbnail ' . $active . '" data-img="' . $src[0] . '">';
yit_image("id=$attachments[$i]&size=shop_thumbnail&class=image-hover");
echo '</div>';
$i++;
}
echo '</div>';
}
else {
echo '<a href="' . $product_url . '" class="thumb">' . woocommerce_get_product_thumbnail() . '</a>';
}
break;
case 'flip':
if(isset($attachments[1])) {
echo '<a href="' . $product_url . '" class="thumb backface"><span class="face">' . woocommerce_get_product_thumbnail() . '</span></a>';
echo '<span class="face back">';
yit_image("id=$attachments[1]&size=shop_catalog&class=image-hover");
echo '</span></a>';
}
else {
echo '<a href="' . $product_url . '" class="thumb"><span class="face">' . woocommerce_get_product_thumbnail() . '</span></a>';
}
break;
}
程式码:
改性if($product->is_type('external')){
$product_url = $product->get_product_url() . '"target="_blank""';
} else($product_url = get_permalink());
} else ($product_url = get_permalink());
代码:
与已在上面添加的代码外,替换()与$ product_url get_permalink的所有实例。
请保持不相关的网址出现可能被视为垃圾邮件的答案。谢谢。 – Drew