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

WooCommerce可变产品通知问题-请选择产品选项

孟宏才
2023-03-14

我正在建立一个电子商务网站。我的产品有点问题。

“添加到购物车”按钮对简单的产品效果很好,但对可变的产品不起作用。它给出了一个"请选择产品选项..."通知。

我到处找,在网上试了几条建议,但都不管用。所以我查看了WooCommerce源文件:class wc form handler.php

在函数中将\u添加到\u购物车\u处理程序\u变量中

function add_to_cart_handler_variable( $product_id ) {
    $adding_to_cart     = wc_get_product( $product_id );
    $variation_id       = empty( $_REQUEST['variation_id'] ) ? '' : absint( $_REQUEST['variation_id'] );
    $quantity           = empty( $_REQUEST['quantity'] ) ? 1 : wc_stock_amount( $_REQUEST['quantity'] );
    $missing_attributes = array();
    $variations         = array();
    $attributes         = $adding_to_cart->get_attributes();
    $variation          = wc_get_product( $variation_id );
...
if ( $missing_attributes ) {
        wc_add_notice( sprintf( _n( '%s is a required field', '%s are required fields', sizeof( $missing_attributes ), 'woocommerce' ), wc_format_list_of_items( $missing_attributes ) ), 'error' );
    } elseif ( empty( $variation_id ) ) {
        wc_add_notice( __( 'Please choose product options…', 'woocommerce' ), 'error' );
    } else {
        // Add to cart validation
        $passed_validation  = apply_filters( 'woocommerce_add_to_cart_validation', true, $product_id, $quantity, $variation_id, $variations );

        if ( $passed_validation && WC()->cart->add_to_cart( $product_id, $quantity, $variation_id, $variations ) !== false ) {
            wc_add_to_cart_message( $product_id );
            return true;
        }
    }
    return false;
}


所以我尝试回声$variation_id$变化$变化。它们都没有任何内容,因为当我回声$variation_id时:它不会输出任何内容。

有什么建议吗?

共有3个答案

宰父宾实
2023-03-14

我也面临同样的问题…删除你的变体样本插件,问题就会解决

穆正祥
2023-03-14

虽然我们都有共同的变化样本,但错误(听起来很奇怪)在于主题不兼容。要测试,只需切换到2020主题,订购即可。我会建议,然后使2020套件您的需求,并停止使用主题,开发人员采取天休假时,WooCommerce更新推出!禁用样本不会有帮助,因为代码已经存在。祝你好运。

柴正祥
2023-03-14

在“商店”页面上,您不能对可变产品使用“添加到购物车”按钮,因为在将此可变产品添加到购物车之前,您需要首先在“单一产品”页面上选择此可变产品的选项。

在可变产品页面上,在使用“添加到购物车”按钮之前,通常您有一些显示的选项可供选择。如果你不这样做,你会得到错误消息...
所以在这一点上:

  • 这些选项不会显示在产品页面中(后端产品页面中的设置不正确、主题存在错误或其他插件):
    • 检查您的产品后端设置
    • 尝试切换到默认的wordpress主题(看看这个问题是否仍然存在)
    • 尝试禁用大部分插件

    如果此问题与您的主题相关,请联系主题的作者并打开支持线程或票...

    输出产品ID的产品变体:

    要以编程方式获取可变产品ID的产品变化:

    $product = wc_get_product( $product_id );
    $product_variations = $product->get_available_variations();
    
    echo var_dump($product_variations); // Displaying the array
    

    然后获取第一个变体ID:

    $product = wc_get_product( $product_id );
    $product_variations = $product->get_available_variations();
    
    $variation_product_id = $product_variations [0]['variation_id'];
    echo $variation_product_id; // Displaying the variation ID
    

    或获取此产品ID的所有变体ID的数组:

    $product = wc_get_product( $product_id );
    $product_variations = $product->get_available_variations();
    
    $arr_variations_id = array();
    foreach ($product_variations as $variation) {
        $product_variation_id = $variation['variation_id'];
        array_push( $arr_variations_id, $product_variation_id );
    }
    
    echo var_dump($arr_variations_id); // Displaying the array of variations ID
    

    参考:在商店页面中将“添加到购物车”按钮更改为“转到产品”

 类似资料:
  • 我一直在为使用WooCommerce的客户开发一个电子商务商店,我遇到了一个非常奇怪的问题。我所有的产品都是可变产品,我对它们进行了如下设置:变量1-重量(0,0.5,1.0,1.5,2.0…5.0千克)变量2-单位(0,1,2,3,4,5…10)变量3-切割类型(研磨、切片、整体等)我设置变量的方式使客户必须选择变量1或变量2(重量或单位)和变体3。如果他们选择按重量(重量大于“0”)购买产品,

  • 我试图以编程方式为一个可变产品添加两个产品变体。基于此回答线程,我使用以下缩短的函数: 我使用以下数据数组: 然后我运行以下函数: 其中,是我要对其进行更改的变量产品的id,是上面定义的数据数组。 我的问题是函数只插入foreach in函数中的最后一个数据。 i、 e.在商业中的产品变化有: 红色W1 红色W1 但我想: 蓝色W1 红色W1

  • 我已经为Woocommerce开发了定制的单一产品模板,这些模板可以正常工作并符合预期。问题是,现在客户想要销售的产品有一些不同的变体,而我不知道如何添加此功能。 目前在产品页面上,我使用了the_post_thumbail()和get_post_meta()等函数来显示产品的各种信息,如价格和在产品帖子类型中输入的摘录。然后我使用do_action(woocommerce_simple_add_

  • 我正在我的WooCommerce网店上为我的产品制作一个自定义附加组件。一切正常,但我只需要一件事。当客户选中产品页面上的复选框时,必须将$30添加到所选变体的原始价格中。 这部分:检查复选框是否被选中。 我的问题就在这里: 的值仅为0。 因此,我试图找出如何获得所选变体的价格。 我尝试了和,但没有任何运气... 更新我已经尝试从这个线程实现代码。有了这些代码,我可以得到所选变体的价格,但我不能再

  • WooCommerce产品页选项卡是指产品页面里显示产品信息、用户评论的选项卡部分,不明白我说的 哪里请看下图。 添加新的产品页选项卡 参数说明: title:选项卡的标题,在前台显示 priority:会影响选项卡排序,小的排前面 callback:输出选项卡内容的函数,把函数名字当作参数传进来 /** * Add a custom product data tab */ add_filte

  • 我试图使用WC_产品类在WooCommerce中创建变量产品。我们成功创建了一个简单的产品,但无法创建具有以下代码的可变产品: 这段代码正在WooCommerce中创建简单的产品。我们需要创建一个具有选项和变化的可变产品。