我想隐藏或删除woocommerce购物车中的一列,我正在为woocommerce制作一个插件,这样直接修改购物车就不好了。php或函数。php(这将是解决方案),但当woocommerce插件发布更新时,代码将不复存在,现在我只能隐藏该项目的价格,而不是整个列。
add_filter( \'woocommerce_cart_item_price\', \'__return_empty_string\' );
除此之外,我还可以使用CSS
display:none
但是如果人们检查代码,就会看到这些项目,目前购物车是这样的
.
你知道如何用钩子从购物车中隐藏整个价格栏吗,谢谢。
我的回答是:
在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
最合适的回答,由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/