【发布时间】:2019-02-04 07:49:23
【问题描述】:
我正在尝试创建一个设置可变产品缩略图的函数。目前我必须进入后端并手动应用图像,但我想要更动态的东西。
例如,假设我有一个名为 Lamp 的变量产品,里面有三个子产品。每个子产品都相同,但颜色不同(蓝色、绿色、黄色)。现在我想要的是可变产品与内部的第一个变体具有相同的图像,但是如果将黄色滤色器应用于商店页面,我想获取该变体的图像并将其显示为可变缩略图。
我几乎已经创建了这个功能,但是如果语句对于不同的产品可能是正确的,并且我最终得到了产品的多个缩略图,则会出现问题。
如何改进此功能?
remove_action( 'woocommerce_before_shop_loop_item_title', 'woocommerce_template_loop_product_thumbnail', 10);
add_action( 'woocommerce_before_shop_loop_item_title', 'set_product_image', 10);
function set_product_image() {
global $product;
if( $product->is_type('variable') ){
foreach ( $product->get_visible_children() as $variation_id ){
$variation = wc_get_product( $variation_id );
$product_colour = strtolower( $variation->get_attribute('colour') );
$filter_colour = $_GET['filter_colour'];
if( $product_colour == $filter_colour){
echo $variation->get_image( array(300, 300) );
}else if( $product_colour != $filter_colour ){
// echo $variation->get_image( array(300, 300) );
}
}
}else if( $product->is_type('simple') ){
if ( has_post_thumbnail() ) {
echo $product->get_image( array(300, 300) );
}
}
}
【问题讨论】:
标签: php wordpress woocommerce