当前位置: 首页 > 知识库问答 >
问题:

更换产品可在WooCommerce 3中购买

卢黎昕
2023-03-14

在开发一个将自定义产品添加到购物车的WooCommerce插件时,我正在使用函数add_to_cart内部的class-wc-cart.php。但更新伍科姆尔斯到最新版本后,我收到了错误。

对不起,此产品无法购买。

因为在函数向购物车添加\u中,$product\u数据部分-

产品有价格,可以使用界面添加到购物车。该插件与旧版本的WooCommerce运行良好。如果您需要更多数据,请告诉我。


共有1个答案

侯焱
2023-03-14

您可以使用和删除''进行必要的更改!==$产品-

add_filter( 'woocommerce_is_purchasable', 'customizing_is_purchasable', 20, 2 );
function customizing_is_purchasable( $purchasable, $product ){
    if( $product->exists() && ( 'publish' === $product->get_status() || current_user_can( 'edit_post', $product->get_id() ) ) )
        $purchasable = true; 

    return $purchasable;
}

对于产品变体,您也可以同时尝试(未经测试,但应该可以):

add_filter( 'woocommerce_variation_is_visible', 'customizing_variation_is_visible', 20, 4 );
function customizing_variation_is_visible( $visible, $product_id, $parent_id, $product ){
    if( 'publish' === get_post_status( $product->get_id() ) )
        $visible = true;
    else
        $visible = false;

    return $visible;
}

代码进入函数。活动子主题(或活动主题)的php文件。测试和工作。

 类似资料:
  • 我正在重写AJAX函数,以便使用WooCommerce添加产品,这样我也可以将属性发送到购物车(这不是开箱即用的)。 在通过AJAX添加变量产品后,我按照更新WooCommerce购物车的说明进行了操作——这正是我想要的——但它并不完全有效。 当我注销时,一切都很好。但是,当我登录Wordpress时,PHP覆盖不起作用/被忽略。我没有收到任何错误,也没有向购物车添加任何产品。我尝试了许多不同的方

  • 我一直在网上搜索阅读文档 供您参考,我的主产品页面位于主页中,已选择的每个产品都将重定向到签出页面。现在,这里有一个问题。让我解释一下。。。。 你们看,我在结账页面上有一个旋转木马滑块,用户可以在付款之前更改/替换他们的产品(已经添加到购物车中)。 form-checkout.php 如你所见,在旋转木马中,我包含了

  • 问题内容: 我已经组装好了将链接添加到购物车中的可变产品的链接,就像这样,但是我对如何“刷新”购物车而不重新加载页面感到困惑。我的猜测是,我没有正确地向购物车请求中添加此AJAX,因此未调用woocommerce_add_to_cart_fragments(我相信我的购物车HTML会在此处放置刷新)。 如果有人能指出我正确的方向,我将不胜感激。Variable / AJAX / WooCommer

  • 我已经组装了一个链接,像这样将一个可变产品添加到我的购物车,但是我不知道如何在不重新加载页面的情况下“刷新”购物车。我的猜测是,我没有正确地将此AJAX添加到购物车请求,因此,woocommerce_add_to_cart_fragments(我相信我的购物车超文本标记语言将被放置以供刷新)没有被调用。 如果有人能给我指出正确的方向,我将不胜感激。Variable/AJAX/WooCommerce

  • 我正在创建一个WooCommerce(5.6.0版)网站,用户可以在该网站上购买泡沫产品,并在存档页面上计算价格。基本上,用户输入维度,然后根据公式计算价格。我目前正在努力更新购物车中的价格,我以前没有在这一级别定制产品和价格的经验,因此任何帮助都将不胜感激。。到目前为止,我已经完成了以下步骤: 1.获取(通过Ajax)并在WC_会话中设置自定义产品价格 2.从WC_Session数据更改购物车项

  • 问题内容: 我有上面的代码。 如果我在cart_item上运行print_r,我将得到一个多维数组: 我如何只获得product_id? 我试过$ test = 没用 问题答案: 要获取 foreach循环中的每个购物车商品(对于简单产品): 如果是可变产品,请获取 : 或在两种情况下 ( Woocommerce 3+中 的 Object在哪里) : 更新: 循环外使用产品ID 1)打破循环 (仅