WooCommerce-在购物车表格中隐藏一列

时间:2017-11-16 作者:Johanna Ferreira

我想隐藏或删除woocommerce购物车中的一列,我正在为woocommerce制作一个插件,这样直接修改购物车就不好了。php或函数。php(这将是解决方案),但当woocommerce插件发布更新时,代码将不复存在,现在我只能隐藏该项目的价格,而不是整个列。

add_filter( \'woocommerce_cart_item_price\', \'__return_empty_string\' ); 
除此之外,我还可以使用CSSdisplay:none 但是如果人们检查代码,就会看到这些项目,目前购物车是这样的

enter image description here

.

你知道如何用钩子从购物车中隐藏整个价格栏吗,谢谢。

我的回答是:

在BenHartlenn的帮助下,我将此代码添加到插件中,以替换购物车。我的插件购物车的php。php和其他需要替换的文件

define( \'PLUGIN_DIR\', plugin_dir_path( __FILE__ ) );

add_filter( \'woocommerce_locate_template\', \'plugin_locate_template\', 10, 3 );

function plugin_locate_template( $template, $template_name, $template_path ) {

  global $woocommerce;
  $_template = $template;

  if ( ! $template_path ) $template_path = $woocommerce->template_url;

  $plugin_path  = PLUGIN_DIR . \'/woocommerce/\';

  $template = locate_template(
    array(
      $template_path . $template_name,
      $template_name
    )
  );

  // Get the template from this plugin, if it exists
  if ( ! $template && file_exists( $plugin_path . $template_name ) )
    $template = $plugin_path . $template_name;

  // Use default template
  if ( ! $template )
    $template = $_template;

  // Return what we found
  return $template;

}
现在,我在本例中创建文件夹购物车,并在其中创建购物车。php文件被我修改,删除了Price和Total列,它适用于任何需要替换的文件。

您在上创建该文件

/插件/你的插件/woocommerce/购物车/购物车。php

代码将自动替换默认的woocommerce购物车。php用于您的文件,可与woocommerce/templates/中的任何文件一起使用,这样您就可以拥有自己的自定义woocommerce模板文件。

如果此解决方案不起作用,并且此代码没有加载您自己的自定义文件,则可能是因为模板(例如avada)已经在替换购物车。php或其他文件,检查路径

/主题/your\\u主题/woocommerce

确保模板没有替换您尝试用插件替换的同一文件。

感谢Ben的帮助:D

1 个回复
最合适的回答,由SO网友:Ben HartLenn 整理而成

在手推车中查看后。php,看起来你不能用钩子做到这一点,因为有静态html围绕着产品价格内容。产品价格内容受woocommerce_cart_item_price 钩子,但不包含列结构本身的静态html标记。

好消息是您可以覆盖购物车。php模板文件,将其放入主题中,然后删除模板文件版本中价格列的静态html输出。您不必担心这样会丢失更改,但您必须密切关注并合并Automatic对Woocommerce插件车所做的任何更改。php模板文件。

要进行模板覆盖,只需从中复制Woocommerce插件文件/wp-content/plugins/woocommerce/templates/cart/cart.php, 并将其移到您的主题,以便Woocommerce将您的版本识别为覆盖。在这种情况下,您可以放置购物车。php文件到/wp-content/themes/your-theme/woocommerce/cart/cart.php 在创建woocommerce/cart/ 主题内的目录。之后,Woocommerce应该从主题加载文件的版本,而不是cart的插件版本。php。

最后,您可以删除或注释掉第96行到第100行(在最新版本的cart.php中),这将从输出中删除整个Price列。我没办法告诉你,但你可能需要在做了这件事之后再润色一下其他视觉效果。

以下是有关覆盖Woocommerce模板文件的更多信息,以备不时之需:https://docs.woocommerce.com/document/template-structure/

结束

相关推荐

添加到数组并通过do_action/Apply_Filters传递它

作为练习,我正在使用PHPclass to add meta boxes 我在GitHub上找到了。我只是复制了代码,现在我正在玩它来理解它。其工作原理如下:包含该类的文件包含在init中。在该文件内部,但在类外部,有一个空数组$meta_boxes 已初始化之后,使用apply_filters. 我猜是apply_filters 使用而不是do_action 因为后者不返回任何内容——$meta_boxes = apply_filters( \'cmb_meta_boxes\', $meta_boxes