Поддержка Плагины woocommerce изменение цены при добавлении в корзину

  • День добрый у меня имеется вариативный товар.
    вариция являются колории, для каждого числа колорий имеется своя цена
    так ввел варицию количество дней «1,5,7,21 допустим» (у них нету цены, чисто как атрибут для сортировке в корзине ввел).
    Рассчет цены идет по формуле представленой ниже.
    Если юзер выбирает 5 дней, то его цена (в зависимости от варианта колорий, которые он выбрал) вычисляется по формуле x*5-5%, семь дней — x*7-6%, двадцать один — x*21-10%, где x- цена товара, согласно выбранному типу колории за 1 день.

    Плагины искал, ничего не нашел. 4 день изучаю интернет и class-wc-cart.php .
    Нашел много интересного. Нашел хук как изменить цену уже после просчета скидок доставки итд, но это заведомо гиблый случай, подключи плагин со скидками или введи скидку все слетит, придется самому допиливать скидки.

    add_action( 'woocommerce_after_calculate_totals', 'woocommerce_after_calculate_totals2' );

    пробовал через

    function in_recalculate_price_by_count_day( $cart_item_data ) {
        global $woocommerce;
        $cart_item_data['data']->set_price('111111111111111');
        return $cart_item_data;
    }
    add_filter( 'woocommerce_add_cart_item' , 'in_recalculate_price_by_count_day', 10 );

    Я могу добавить даже атрибут в массив cart_item_data, в интернете много примеров с установкой цены $cart_item_data[‘data’]->set_price(‘111111111111111’); но у меня не работает.

    пробовал даже класс Ссылка на битбакет этого человека, но пробиться к set_price(‘111111111111111’); не получилось.

    пройдясь по всем функциям и хукам раз 10 я так и не нашел где бы можно было подключиться чтобы реализовать свою формулу в цене до просчета скидок итд.

    Причем я подразумеваю такую логику работы (если я ошибаюсь поправьте), изменяется цена, высчитывается скидки итд, потом заносится в бд уже с ценой кастомной (т.к. я видел что данные о корзине хранятся в бд).
    в get_price я не стал даже смотреть, т.к. слишком глубоко приходится лезть чтобы изменить цену.

    самый идеальный хук для изменения цены был бы ‘woocommerce_add_cart_item’
    т.к. мы имеем доступ к объекту непосредственно добавляемый в корзину, ничего лишнего, а все остальные хуки находящиеся в
    public function calculate_totals() {
    там мы уже не знаем какой товар добавили, у нас в массиве корзина имеются все товары добавленые и которые уже были, только добавленый товар без цены что его и отличает.

    Буду рад любой информации, спасибо за внимание

  • Тема «woocommerce изменение цены при добавлении в корзину» закрыта для новых ответов.