Woocommerce中的自定义产品模板和操作挂钩

时间:2018-08-16 15:56:13

标签: php wordpress templates woocommerce hook-woocommerce

我有一个来自Storefront的子主题,并且为主页和其他页面运行了自定义页面模板,而没有任何问题。

我正在为Woocommerce页面构建自定义布局,并在文件中包含自定义代码的单个产品页面上使用content-single-product.php,例如:

<div class="wc-product-images">
    <?php do_action( 'woocommerce_before_single_product_summary', 'woocommerce_show_product_images'); ?>
</div>

<div class="wc-product-description">
    <?php the_content(); ?>     
</div>

问题1 :我是否在模板文件中使用do_action()来正确调用Woocommerce内容?我有特定的布局,并且无法按照默认文件遵循挂钩布局

问题2 :当我打电话时:

<?php 
    do_action( 'woocommerce_after_single_product_summary', 'woocommerce_output_related_products' );
?>

我获得了相关产品的产品说明,实际上只需要建立一个包含相关产品的div。

在没有说明的情况下如何正确调用呢?

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

您感到困惑,原始的do_action( 'woocommerce_before_single_product_summary' )启用woocommerce content-single-product.php模板中的入口点,其中add_action()用于使用以下功能钩住其他模板:

  • woocommerce_show_product_sale_flash() (挂钩优先级为10)
  • woocommerce_show_product_images() (挂钩优先级为20)

因此,如果您只想在自定义模板中启用产品图片,则必须创建自己的挂钩:

<div class="wc-product-images">
    <?php do_action( 'woocommerce_before_single_product_summary_custom' ); ?>
</div>

<div class="wc-product-description">
    <?php the_content(); ?>     
</div>

然后,将其添加到活动子主题(或活动主题)的函数.php文件中:

add_action( 'woocommerce_before_single_product_summary_custom', 'woocommerce_show_product_images', 20 );

它应该按预期工作。


但是您可以在自定义模板中使用原始钩子,如果不需要任何其他钩子自定义项……在这种情况下,您将仅具有以下内容:

<div class="wc-product-images">
    <?php do_action( 'woocommerce_before_single_product_summary' ); ?>
</div>

<div class="wc-product-description">
    <?php the_content(); ?>     
</div>

添加:与您的评论相关(关于相关产品)。

要在自定义模板中启用相关产品,请将其添加到 (带有自定义钩子)

<div class="wc-product-related">
    <?php do_action( 'custom_after_single_product_summary' ); ?>
</div>

然后,将其添加到活动子主题(或活动主题)的function.php文件中:

add_action( 'custom_after_single_product_summary', 'woocommerce_output_related_products', 20 );

应该可以。