@MisTFoR

Как создать правильный цикл?

Здравствуйте.
У меня в товарах есть скажем так "самодельные" чекбоксы, которые при выборе изменяется цена товара.
add_filter('woocommerce_add_cart_item_data', 'add_custom_product_data', 10, 3);
function add_custom_product_data( $cart_item_data, $product_id, $variation_id ) {
    $cart_item_data['zero_price'] = (float) $_POST['zero_price'];
    $cart_item_data['first_price'] = (float) $_POST['first_price'];
    $cart_item_data['second_price'] = (float) $_POST['second_price'];
    
    $cart_item_data['active_price'] = (float) $_POST['active_price'];
    $cart_item_data['unique_key'] = md5(microtime().rand());
    
    if (isset($_POST['zero_option'])) {
        $cart_item_data['new_price'] = (float) ($_POST['active_price'] + $_POST['zero_price']);
    }
    if (isset($_POST['first_option'])) {
        $cart_item_data['new_price'] = (float) ($_POST['active_price'] + $_POST['first_price']);
    }
    if (isset($_POST['second_option'])) {
        $cart_item_data['new_price'] = (float) ($_POST['active_price'] + $_POST['second_price']);
    }

    return $cart_item_data;
}


Его проблема в том - что чекбоксов 3, а цена обновляется при выборе одного. А мне надо, что бы она обновлялась при выборе 1/2/3.
  • Вопрос задан
  • 26 просмотров
Решения вопроса 1
@MisTFoR Автор вопроса
Решил проблему:
$i = 0;
while($i = 1){
    $new_price_perm = $_POST['active_price'];

    if (isset($_POST['zero_option'])) {
        $new_price_perm += $_POST['zero_price'];
    }
    if (isset($_POST['first_option'])) {
        $new_price_perm += $_POST['first_price'];
    }
    if (isset($_POST['second_option'])) {
        $new_price_perm += $_POST['second_price'];
    }

    $cart_item_data['new_price'] = $new_price_perm;
    break;
}

return $cart_item_data;

Это вместо трех if
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы