在WooCommerce的存档页面上显示视频而不是产品缩略图。

问题描述 投票:0回答:1

我试图使用高级自定义字段插件在商店页面上显示一个WooCommerce产品的视频。

我想创建一个条件,如果一个产品有视频,那么显示它而不是 woocommerce_template_loop_product_thumbnail.

$file = get_field('archive_video'); if( $file ) { ?> 
<video width="200" muted loop autoplay src="<?php echo $file['url']; ?>"></video> <?php
} else {
  /** 
  * @hooked woocommerce_template_loop_product_thumbnail - 10;
   */
}

我选择的方法正确吗?

这里应该是这样的。

enter image description here

php wordpress woocommerce advanced-custom-fields hook-woocommerce
1个回答
1
投票

试试下面的方法,使用钩子而不是覆盖模板。

add_action( 'woocommerce_before_shop_loop_item_title', 'action_template_loop_product_thumbnail', 9 );
function action_template_loop_product_thumbnail() {
    global $product;

    $file = get_field('archive_video', $product->get_id());

    if( isset($file['url']) && ! empty($file['url']) ) {
        remove_action( 'woocommerce_before_shop_loop_item_title', 'woocommerce_template_loop_product_thumbnail', 10 );

        echo '<video width="200" muted loop autoplay src="' . $file['url'] . '"></video>';
    }
}

代码在活动的子主题(或活动主题)的function.php文件。它应该工作。

© www.soinside.com 2019 - 2024. All rights reserved.