Php 如何删除错误您不能再添加一个“;产品名称”;去你的购物车
在我的网站woocommerce设置中,删除添加到ajax和通知卡;当用户(访问者)将产品添加到购物篮中进行购买时,单击“购物篮”后重定向,并显示消息“将产品添加到购物篮中的卡片成功” 但当产品选项处于活动(启用)状态时,我想单独销售选项。 用户反复尝试将产品添加到购物篮中。收到以下信息: 无法将其他“产品名称”添加到购物车。 我的问题是如何使用functions.php来删除此错误,因为您无法向购物车添加其他“产品名称” 重复后在购物篮中显示新消息,单击购物篮中的“添加到购物车”按钮 您以前将“产品名称”添加到购物车。现在你可以付钱了 一般来说:Php 如何删除错误您不能再添加一个“;产品名称”;去你的购物车,php,wordpress,function,woocommerce,hook-woocommerce,Php,Wordpress,Function,Woocommerce,Hook Woocommerce,在我的网站woocommerce设置中,删除添加到ajax和通知卡;当用户(访问者)将产品添加到购物篮中进行购买时,单击“购物篮”后重定向,并显示消息“将产品添加到购物篮中的卡片成功” 但当产品选项处于活动(启用)状态时,我想单独销售选项。 用户反复尝试将产品添加到购物篮中。收到以下信息: 无法将其他“产品名称”添加到购物车。 我的问题是如何使用functions.php来删除此错误,因为您无法向购物车添加其他“产品名称” 重复后在购物篮中显示新消息,单击购物篮中的“添加到购物车”按钮 您以前将
非常感谢大家这是一个经过测试且行之有效的解决方案,用于删除“您无法添加其他”消息。 背景:Woocommerce不会对其所有通知公开直接挂钩。cart错误实际上作为抛出的异常硬编码到class-wc-cart.php中 生成错误异常时,会将它们添加到通知列表中,我们可以使用以下方法访问、解析和更改这些通知:
- wc\u get\u notices()以数组形式返回所有通知
- wc\u set\u notices()用于直接设置通知数组
add_action('woocommerce_在_template_part之前,'houx_filter_wc_notices');
函数houx_filter_wc_notices(){
$noticeCollections=wc_get_notices();
/*调试:取消对以下行的注释,以查看woocommerce为此页面生成的所有通知的转储*/
/*var_dump($noticeCollections)*/
/*noticeCollections是按通知类型索引的数组。可能的类型有:错误、成功、通知*/
/*每个元素包含给定类型的通知子数组*/
foreach($noticeCollections作为$noticetype=>$notices)
{
如果($noticetype=='error')
{
/*下一行删除所有包含“您无法添加其他”的错误*/
/*如果要筛选additiona错误,只需复制该行并更改文本即可*/
$filteredErrorNotices=array_filter($notices,function($var){return(stripos($var,'您不能添加另一个')==false);});
$noticeCollections['error']=$filteredErrorNotices;
}
}
/*调试:取消注释以查看筛选的通知集合*/
/*回声“过滤通知:”;
var_dump($noticeCollections)*/
/*此行通过将通知更改为筛选集来覆盖这些通知*/
wc_集合通知($noticeCollections);
}
旁注:如果您想添加自己的通知,可以使用wc_add_notice()。您必须阅读woocommerce文档才能了解其工作原理:
听到这个消息很难过。您是否有可以在最新版本中使用的解决方法?将
return(stripos($var,
替换为return(stripos($var['notice']),
这样可以防止“stripos()期望参数1是字符串,数组给定的”警告错误,这也将解决此代码的问题。@brauliobo你能试试7uc1f3r的建议吗?他说的很有道理。我以前没有意识到这会产生警告。我现在自己没有办法测试,所以如果可能的话,我希望在编辑答案之前得到确认。@7uc1f3r没有帮助,我想wc_由于var\u dump
显示通知已被删除,因此set\u通知正在被稍后的操作覆盖matched@brauliobo调整确实有效,因为我已经对其进行了2次测试。可能是因为您已经在使用其他插件/自定义代码。您只是希望消息停止显示?还是希望用还有消息吗?
add_action('woocommerce_before_template_part', 'houx_filter_wc_notices');
function houx_filter_wc_notices(){
$noticeCollections = wc_get_notices();
/*DEBUGGING: Uncomment the following line to see a dump of all notices that woocommerce has generated for this page */
/*var_dump($noticeCollections);*/
/* noticeCollections is an array indexed by notice types. Possible types are: error, success, notice */
/* Each element contains a subarray of notices for the given type */
foreach($noticeCollections as $noticetype => $notices)
{
if($noticetype == 'error')
{
/* the following line removes all errors that contain 'You cannot add another'*/
/* if you want to filter additiona errors, just copy the line and change the text */
$filteredErrorNotices = array_filter($notices, function ($var) { return (stripos($var, 'You cannot add another') === false); });
$noticeCollections['error'] = $filteredErrorNotices;
}
}
/*DEBUGGING: Uncomment to see the filtered notices collection */
/*echo "<p>Filtered Notices:</p>";
var_dump($noticeCollections);*/
/*This line overrides woocommerce notices by changing them to our filtered set. */
wc_set_notices($noticeCollections);
}