挂钩以在类别页面上将元素显示为产品

时间:2019-02-13 作者:Omer

我正在创建一个插件,并试图添加一个将显示为产品的元素。在图片中,元素是红色矩形。

enter image description here

我用过this 导游,但那里的钩子都帮不了我。我试过了woocommerce_before_shop_loop, 它在产品后面添加元素,占用整个页面(在DOM树中,它将其添加为products元素的父元素)。

而且woocommerce_before_shop_loop_item 在销售徽章之前,将元素插入产品的元素容器中。

我可以用哪个钩子来实现我想要的?

谢谢

1 个回复
SO网友:Fabrizio Mele

您必须重写shop循环才能在某些产品之间插入某些内容。循环发生的文件是wp-plugins/woocommerce/templates/archive-product.php (this one). 使用覆盖它this guide 然后做这样的事

$counter = 0;
while ( have_posts() ) {
  if($counter == 5){ //if you want your code between the 5th and the 6th product
    echo "<li ".wc_product_class( \'\', $product ).">";
    echo "My Html!";
    echo "</li>";    
  }
  the_post();

  do_action( \'woocommerce_shop_loop\' );
  wc_get_template_part( \'content\', \'product\' );
  $counter++;
}
请注意,我<li> 来自默认woocommercecontent-product.php 模板,如果模板被覆盖,您可能希望在主题中查找该模板。

当您试图通过插件覆盖模板时,需要插入插件woocommerce woocommerce模板搜索范围内的目录。This answer 有一个很好的代码示例说明如何执行此操作。

相关推荐

Testing Plugins for Multisite

我最近发布了一个WordPress插件,它在单个站点上非常有效。我被告知该插件在多站点安装上不能正常工作,我理解其中的一些原因。我已经更新了代码,现在需要一种方法来测试更新后的代码,然后才能转到实时客户的多站点安装。我有一个用于测试的WordPress安装程序的单站点安装,但需要在多站点安装上进行测试。根据我所能找到的唯一方法是在网络上至少有两个站点来安装整个多站点安装,以测试我的插件。设置WordPress的整个多站点安装是插件开发人员的唯一/首选方式,还是有更快的测试环境可用。