我试图在一个基于引导框架的定制主题中实现wooCommerce (因为我对事情的外观很挑剔),所以我要做的是重新定位wooCommerce产品缩略图图片。我知道通过wooCommerce可以获得的各种函数和钩子,比如wc-template-hooks.php中列出的函数和挂钩,除了在我的特殊情况下,它们工作得很好。我使用"woocommerce_before_main_content"和"woocommerce_after_main_content"挂钩将产品信息包装在我的引导框架中,如下所示.
...
<div class="row">
<div class="col-md-1"> *where I want my gallery images to go* </div>
<div class="col-md-7 *woocommerce-main"> where my woocommerce product is loaded* </div>
<div class="col-md-4"> *some other product info is loaded here* </div>
</div>...我遇到的情况是,在调用/加载产品部分之前,我似乎无法使用任何产品挂钩或功能(当然,这是非常有意义的),但我需要能够将产品库图像加载到第一列"col-md-1".所以我的问题是..。如何在所有内容都完成加载之前获得产品库图像,或者可以追溯处理在所有加载之后进入第一列的内容?
谢谢
编辑:在我的functions.php中完成woocommerce钩子
<?php
remove_action( 'woocommerce_before_main_content', 'woocommerce_output_content_wrapper', 10);
remove_action( 'woocommerce_after_main_content', 'woocommerce_output_content_wrapper_end', 10);
remove_action( 'woocommerce_after_single_product_summary', 'woocommerce_output_product_data_tabs', 10 );
remove_action( 'woocommerce_after_single_product_summary', 'woocommerce_output_related_products', 20 );
remove_action( 'woocommerce_product_thumbnails', 'woocommerce_show_product_thumbnails', 20 );
add_action('woocommerce_before_main_content', 'underwire_wrapper_start', 10);
add_action('woocommerce_after_main_content', 'underwire_wrapper_end', 10);
function underwire_wrapper_start() {
echo '<div class="row">';
if ( is_product() ) {
echo '<div class="col-md-1">';
echo woocommerce_get_product_thumbnail();
//woocommerce_show_product_thumbnails();
echo '</div>';
echo '<div class="col-md-7 woocommerce-main">';
} else {
echo '<div class="col-sm-12 woocommerce-main">';
}
}
function underwire_wrapper_end() {
if ( is_product() ) {
echo '</div> <!-- /.woocommerce-main --><div class="col-md-4">';
woocommerce_output_product_data_tabs();
//woocommerce_output_related_products();
echo '</div></div>';
} else {
echo '</div> <!-- /.woocommerce-main --></div>';
}
}
?>发布于 2020-02-18 15:03:22
2020回答:--这是一篇老文章,但是对于任何阅读这篇文章的人,我相信您可以连接到产品页面的任何部分,然后在您的自定义钩子函数中,使用$product对象使用类似的内容来访问照片in:
// priority number at the end can be whatever you want
add_action('action_you_want_to_hook_into', 'your_custom_function', 10);
function your_custom_function() {
global $product;
image_ids[] = $product->get_gallery_image_ids();
// do something with image_ids[]
}希望这能帮助任何人在这里绊倒!
https://stackoverflow.com/questions/41566069
复制相似问题