gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 00:09:35 25 4
gpt4 key购买 nike

我正在建立一个电子商务网站。我在使用 WooCommerce 时遇到了一些问题 可变产品 .

“添加到购物车”按钮适用于简单产品,但不适用于可变产品。它给出了 "Please choose product options…"注意。

我到处寻找并在网上尝试了几个建议,但都没有奏效。所以我查看了 WooCommerce 源文件: class-wc-form-handler.php .

在函数中 add_to_cart_handler_variable :

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;
}

错误在 elseif 子句中被捕获。
所以我试着回显 $variation_id , $variations , 和 $variation .他们都没有任何东西,因为当我 echo 时 $variation_id : 它不输出任何东西。

有什么建议?

最佳答案

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

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

  • 选项 不显示 在产品页面中(后端产品页面中的错误设置、主题错误或一些其他插件):
  • 检查您的产品后端设置
  • 尝试切换到默认的 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

    引用: Change "Add to Cart" button to "Go to Product" in the Shop Page

    关于php - WooCommerce 可变产品通知问题 - 请选择产品选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38111163/

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