我正在建立一个电子商务网站。我在使用 WooCommerce 时遇到一些问题可变产品.
“添加到购物车”按钮适用于简单产品,但不适用于可变产品。它给出了一个"Please choose product options…"
notice.
我到处寻找并尝试了网上的一些建议,但没有一个起作用。所以我查看了 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
, and $variation
。它们都没有任何内容,因为当我回声时$variation_id
: 它没有输出任何东西。
如何解决该错误?