自定义WooCommerce产品文章hook顺序
最近在做一款企业产品展示的商城网站,设计WooCommerce产品文章的布局与默认的布局有很大的不同,所以其中的一些模块都需要重新调整。WooCommerce插件提供了模板,通过修改模板可以调整其中的代码位置与显示方式,这样做就得修改很多文件,而且有些地方发动比较大,所以使用hook来调整是最佳的方案。
比如content-single-product.php文件中的这段代码:
- <div class="summary entry-summary">
- <?php
- /**
- * woocommerce_single_product_summary hook.
- *
- * @hooked woocommerce_template_single_title - 5
- * @hooked woocommerce_template_single_rating - 10
- * @hooked woocommerce_template_single_price - 10
- * @hooked woocommerce_template_single_excerpt - 20
- * @hooked woocommerce_template_single_add_to_cart - 30
- * @hooked woocommerce_template_single_meta - 40
- * @hooked woocommerce_template_single_sharing - 50
- */
- do_action( 'woocommerce_single_product_summary' );
- ?>
- </div>
其中都有注释各个模板的hook名称和等级。
删除模块
- remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_price', 10 );
添加代码到主题的functions.php中,将移除产品的价格。
调整模块
把评论等级放在价格的后面,代码如下:
- remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_rating', 10 );
- add_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_rating', 15 );
两段代码看似相似,第一段代码是删除原有的评论等级,第二段代码是添加评论等级,而排列值为15,当前价格的值为10,所以评论等级就到价格的后面了。
在WooCommerce的开发过程中,很多产品列表与文章布局比较独特的都需要调整模块的位置,通过使用hook来调整,就不需要重新整理WooCommerce默认的代码。