【发布时间】:2021-07-10 18:28:27
【问题描述】:
我正试图强制 WooCommerce 中的特定产品单独销售。 但是,我希望此产品无限量销售。
基于Force sold individually product to be bought alone in WooCommerce 运行良好的答案代码,我目前正在使用:
function filter_woocommerce_add_to_cart_validation( $passed, $product_id, $quantity, $variation_id = null, $variations = null ) {
// Product id to bought alone
$product_id_alone = 666;
// Set variable
$alone = true;
// If passed
if ( $passed ) {
// If cart is NOT empty when a product is added
if ( !WC()->cart->is_empty() ) {
// If product id added = product id alone
if ( $product_id_alone == $product_id ) {
$alone = false;
} else {
// Generate a unique ID for the cart item
$product_cart_id = WC()->cart->generate_cart_id( $product_id_alone );
// Check if product is in the cart
$in_cart = WC()->cart->find_product_in_cart( $product_cart_id );
// If product is already in cart
if ( $in_cart ) {
$alone = false;
}
}
} else {
if ( $product_id_alone == $product_id) {
$alone = true;
}
}
}
if ( $alone == false ) {
// Set error message
$message = 'Product 666 must be bought separately.';
wc_add_notice( __( $message, 'woocommerce' ), 'error' );
$passed = false;
}
return $passed;
}
add_filter( 'woocommerce_add_to_cart_validation', 'filter_woocommerce_add_to_cart_validation', 10, 5 );
如果购物车是空的,我可以添加带有自定义数量的 ID 666 的产品。
将 ID 666 的产品添加到购物车后,我无法将其他产品添加到购物车。
如果我先将另一个产品添加到空购物车,我无法将产品 ID 666 添加到购物车。
问题在于,如果我将产品 ID 666 添加到空购物车中,我无法通过将更多产品添加到购物车中来增加产品 666 的数量。
【问题讨论】:
标签: php wordpress woocommerce product cart