在Woocommerce 3中更改缩放放大镜产品图片尺寸

时间:2018-08-10 06:48:31

标签: php wordpress image woocommerce zoom

我一直在努力将放大或灯箱图像设置为不同的(自定义)尺寸,而不是完整尺寸的上传图像。

我发现它是由1399行的wc-template-functions .php中的这一行代码控制的:

$full_size         = apply_filters( 'woocommerce_gallery_full_size', apply_filters( 'woocommerce_product_thumbnails_large_size', 'full' ) );

我试图创建一个将“已满”更改为“预览”或“大”的函数,但我的代码无法正常工作。请参见下面的代码:

function change_magnifier_lightbox_image_size(){
  echo "De post" , $post;

  $post_thumbnail_id = get_post_thumbnail_id( $post->ID );
  echo "De ID ", $post_thumbnail_id;
  $filemeta = wp_get_attachment_metadata( $post_thumbnail_id, FALSE );
  echo "De filemeta ", $filemeta;

    if ($filemeta['width']>3071 || $filemeta['height']>3071){
      $full_size         = apply_filters( 'woocommerce_gallery_full_size', apply_filters( 'woocommerce_product_thumbnails_large_size', 'preview' ) );
    }else{
      $full_size         = apply_filters( 'woocommerce_gallery_full_size', apply_filters( 'woocommerce_product_thumbnails_large_size', 'large' ) );
    };
};
apply_filters( 'woocommerce_product_thumbnails_large_size', 'change_magnifier_lightbox_image_size' );

$ post设置为全局。

我根本没有得到任何回声,也没有从字符串中得到任何回声,并且代码在我的子主题functions.php中。我想念什么?

3 个答案:

答案 0 :(得分:2)

您的代码中有一些错误和错误。请尝试以下操作:

ListView

代码进入您的活动子主题(或活动主题)的function.php文件中。经过测试,可以正常工作。

答案 1 :(得分:0)

我相信您可能需要取消默认的WooCommerce操作

remove_action( 'woocommerce_before_single_product_summary', 'woocommerce_show_product_images', 20);

然后输入代码。

答案 2 :(得分:0)

应该为add_filter而不是apply_filters

add_filter( 'woocommerce_product_thumbnails_large_size', 'change_magnifier_lightbox_image_size' );

,并且您必须在过滤器中返回值,请选中add_filter() https://developer.wordpress.org/reference/functions/add_filter/