gpt4 book ai didi

php - 如何删除 woocommerce 错误您不能将另一个 “PRODUCT NAME” 添加到您的购物车

转载 作者:行者123 更新时间:2023-12-03 17:04:02 25 4
gpt4 key购买 nike

在我的网站 woocommerce 设置中,删除添加到卡片 ajax 和通知;当用户(访问者)将产品添加到购物篮进行购买时,点击购物篮后重定向并显示消息将产品添加到购物篮中的卡片成功

但是当产品选项处于事件状态(启用)时,我想单独出售选项。
用户反复尝试将产品添加到购物篮。收到以下消息:
不能将另一个“产品名称”添加到您的购物车。
我的问题是如何使用functions.php 删除此woocommerce 错误您不能将另一个“产品名称”添加到您的购物车。

并在重复单击篮子中的添加到购物车按钮后,在篮子中显示新消息
您之前将“产品名称”添加到您的购物车。所以现在你可以付款了。

一般来说:

  • 删除无法添加另一个...消息并在单击后停止重定向到产品页面。
  • 显示新的自定义消息。单击并转到购物篮后。

  • 非常感谢你们所有人

    最佳答案

    这是一个经过测试且有效的解决方案,用于删除“您无法添加另一个”消息。

    背景: Woocommerce 不会直接 Hook 其所有通知。购物车错误实际上被硬编码到 class-wc-cart.php 中作为抛出的异常。

    当生成错误异常时,它们会被添加到我们可以使用以下方法访问、解析和更改的通知列表中:

  • wc_get_notices() 以数组形式返回所有通知
  • wc_set_notices() 让你直接设置通知数组

  • 为了访问通知并更改它们,您需要 Hook 一个将在 woocommerce 生成通知后触发的操作,但在显示页面之前。您可以通过以下操作做到这一点: woocommerce_before_template_part

    这是专门删除“您不能添加另一个”通知的完整工作代码:
    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);
    }

    旁注:如果您想添加自己的通知,可以使用 wc_add_notice()。您必须阅读 woocommerce 文档以了解其工作原理:
    wc_add_notice on WooCommerce docs

    关于php - 如何删除 woocommerce 错误您不能将另一个 “PRODUCT NAME” 添加到您的购物车,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51135104/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com