Last active
June 4, 2022 21:13
-
-
Save kalbac/855b48bec42c27c8d0bfd0354093e4dd to your computer and use it in GitHub Desktop.
Принудительно уменьшить стоимость товара если в заказе есть скидка [Tinkoff кредит]
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| <?php | |
| /* | |
| * Сниппет предназначен для уменьшения стоимости товара если к заказу применина скидка. | |
| * Скидка примениться к одному из товаров, итоговая сумма которого привышает сумму скидки в заказе. | |
| * По вопросам обращайтесь на емайл [email protected] или через контактную форму https://woodev.ru/support | |
| * Нижеприведённый код необходимо вставить в файл functions.php вашей активной темы. | |
| * Автор кода не несёт отвественности в случае возникновеня каких либо проблем при использовании данного кода. | |
| * Любые изменения которые вы вносите в код вашего сайта, вы делаете это на свой страх и риск. | |
| * Код представлен для ознакомления как есть. Вы должны понимать что с этим кодом нужно делать. Если нет то обатитесь к профессионалам. | |
| */ | |
| add_filter( 'wc_tinkoff_api_create_request_params', function( $params, $order ) { | |
| //Проверяем, если ли в заказе скидка с отрицательным значением цисла. | |
| if( $order->get_total_fees() && $order->get_total_fees() < 0 ) { | |
| //Конвертируем в абсолютное число | |
| $fees_amout = abs( $order->get_total_fees() ); | |
| //Пробегаемся по всем товарам в заказе | |
| foreach( $params['items'] as $item_key => $item ) { | |
| //Если общая сумма заказа больше чем сумма скидки | |
| if( ( $item['price'] * $item['quantity'] ) > $fees_amout ) { | |
| //Получаем часть суммы скидки от количества данного товара в заказе | |
| $fee = $fees_amout / $item['quantity']; | |
| //Вычетаем скидку из стоимости товара | |
| $params['items'][ $item_key ]['price'] = $item['price'] - $fee; | |
| break; | |
| } | |
| } | |
| } | |
| return $params; | |
| }, 10, 2 ); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment