Woocommerce 如果两个或三个产品一起添加到购物车中,则更改其价格。吴哥商业
下午好! 请帮助我在woocommerce中实现此功能。 我有三个特定的产品(具有特定的ID 2、3、4)。 我需要确保在将其中两个添加到购物车时,它们的价格都会自动更改。例如,对于id为2的产品,价格设置为100美元,而对于id为3的产品,价格设置为200美元。 此外,当它们全部加在一起(其中三个)时,它们的价格都发生了变化:产品2=100;产品#3=200;产品#4=250Woocommerce 如果两个或三个产品一起添加到购物车中,则更改其价格。吴哥商业,woocommerce,hook-woocommerce,Woocommerce,Hook Woocommerce,下午好! 请帮助我在woocommerce中实现此功能。 我有三个特定的产品(具有特定的ID 2、3、4)。 我需要确保在将其中两个添加到购物车时,它们的价格都会自动更改。例如,对于id为2的产品,价格设置为100美元,而对于id为3的产品,价格设置为200美元。 此外,当它们全部加在一起(其中三个)时,它们的价格都发生了变化:产品2=100;产品#3=200;产品#4=250 我还没有在任何地方找到类似的东西,因此我希望得到任何提示。我自己设法解决了这个问题。 我确保我需要的产品在篮子里互相“
我还没有在任何地方找到类似的东西,因此我希望得到任何提示。我自己设法解决了这个问题。 我确保我需要的产品在篮子里互相“监视”。如果其中一方“注意到”另一方,则两方的价格都会更新。 同样地,如果三个人同时在篮子里“看到”对方,价格也会更新。 它可能不是最好的代码,但它工作得很好 原始代码取自此资源,并由我为执行任务而修改。 ()
function simple_func_product_in_cart($product_id){
$product_cart_id = WC()->cart->generate_cart_id( $product_id );
$in_cart = WC()->cart->find_product_in_cart( $product_cart_id );
if ( $in_cart ) {
return true;
}
return false;
}
add_action( 'woocommerce_before_calculate_totals', 'simple_change_price_of_product' );
function simple_change_price_of_product( $cart_object ) {
$target_product_id = 7101; // CHANGE THIS WITH YOUR PRODUCT ID
if(simple_product_in_cart(7105)) {
// Product is already in cart
foreach ( $cart_object->get_cart() as $key => $value ) {
if ( $value['product_id'] == $target_product_id ) {
$value['data']->set_price(160); // CHANGE THIS: set the new price
$new_price = $value['data']->get_price();
}
}
}
$target_product_id = 7101; // CHANGE THIS WITH YOUR PRODUCT ID
if(simple_product_in_cart(7107)) {
// Product is already in cart
foreach ( $cart_object->get_cart() as $key => $value ) {
if ( $value['product_id'] == $target_product_id ) {
$value['data']->set_price(160); // CHANGE THIS: set the new price
$new_price = $value['data']->get_price();
}
}
}
$target_product_id = 7105; // CHANGE THIS WITH YOUR PRODUCT ID
if(simple_product_in_cart(7101)) {
// Product is already in cart
foreach ( $cart_object->get_cart() as $key => $value ) {
if ( $value['product_id'] == $target_product_id ) {
$value['data']->set_price(170); // CHANGE THIS: set the new price
$new_price = $value['data']->get_price();
}
}
}
$target_product_id = 7105; // CHANGE THIS WITH YOUR PRODUCT ID
if(simple_product_in_cart(7107)) {
// Product is already in cart
foreach ( $cart_object->get_cart() as $key => $value ) {
if ( $value['product_id'] == $target_product_id ) {
$value['data']->set_price(170); // CHANGE THIS: set the new price
$new_price = $value['data']->get_price();
}
}
}
$target_product_id = 7107; // CHANGE THIS WITH YOUR PRODUCT ID
if(simple_product_in_cart(7101)) {
// Product is already in cart
foreach ( $cart_object->get_cart() as $key => $value ) {
if ( $value['product_id'] == $target_product_id ) {
$value['data']->set_price(180); // CHANGE THIS: set the new price
$new_price = $value['data']->get_price();
}
}
}
$target_product_id = 7107; // CHANGE THIS WITH YOUR PRODUCT ID
if(simple_product_in_cart(7105)) {
// Product is already in cart
foreach ( $cart_object->get_cart() as $key => $value ) {
if ( $value['product_id'] == $target_product_id ) {
$value['data']->set_price(180); // CHANGE THIS: set the new price
$new_price = $value['data']->get_price();
}
}
}
}