如何在单个产品页面woocommerce上显示高级自定义字段Google Map

时间:2017-01-12 23:51:57

标签: javascript wordpress google-maps woocommerce advanced-custom-fields

我想使用ACF Google地图在我的单个产品页面上的简短描述部分下方显示谷歌地图。

我在ACF中遵循了本教程:https://www.advancedcustomfields.com/resources/google-map/

我通过将php代码添加到single-product.php来测试解决方案:



<?php 

$location = get_field('location');

if( !empty($location) ):
?>
<div class="acf-map">
	<div class="marker" data-lat="<?php echo $location['lat']; ?>" data-lng="<?php echo $location['lng']; ?>"></div>
</div>
<?php endif; ?>
&#13;
&#13;
&#13;

它显示在单个产品页面上,但不在正确的位置。

我希望将地图放在&text; geocommerce_single_product_summary&#39;位置,但我可以弄清楚如何做到这一点。

是否可以通过钩子添加它?

我希望有人能帮助我。

1 个答案:

答案 0 :(得分:0)

您需要使用add_action()将代码添加到woocommerce_single_product_summary操作挂钩。另外,请注意,您需要定义优先级,因为WooCommerce将多个函数添加到同一个挂钩(see source),优先级决定了它们的顺序。我已经猜到30会合适,因为这应该在摘录之后。

add_action( 'woocommerce_single_product_summary', 'so_41625126_add_map', 30 );
function so_41625126_add_map() {

    if( function_exists( 'get_field' ) && $location = get_field( 'location' ) ) { ?>
        <div class="acf-map">
            <div class="marker" data-lat="<?php echo $location['lat']; ?>" data-lng="<?php echo $location['lng']; ?>"></div>
        </div>
    <?php }
}