Удалить знак минус из отображаемой суммы отрицательных комиссий Woocommerce

Я разрабатываю систему бронирования, в которой клиент хочет только внести депозит в размере 50 долларов США, а оставшуюся сумму обговаривать отдельно. Для этого я использовал следующий код, чтобы обновить общую цену до 50 долларов США и показать оставшуюся цену.

function prefix_add_discount_line( $cart ) {
  $deposit = 50;    
  $remaining = $cart->subtotal - 50;
  $cart->add_fee( __( 'Amount Remaining', 'remaining' ) , -$remaining); 
}
add_action( 'woocommerce_cart_calculate_fees', 'prefix_add_discount_line' ); 

В письмах с заказами оставшаяся сумма отображается со знаком минус (-). Пожалуйста, дайте мне знать, как удалить символ минуса в электронных письмах с заказами woocommerce.

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
3
0
499
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Чтобы все отрицательные суммы сборов отображались как положительные суммы в итоговых строках WooCommerce Orders, используйте следующее:

add_filter( 'woocommerce_get_order_item_totals', 'custom_order_total_line_html', 10, 3 );
function custom_order_total_line_html( $total_rows, $order, $tax_display ){
    // Loop through WooCommerce orders total rows
    foreach ( $total_rows as $key_row => $row_values ) {
        // Target only "fee" rows
        if ( strpos($key_row, 'fee_') !== false ) {
            $total_rows[$key_row]['value'] = str_replace('-', '', $row_values['value']);
        }
    }
    return $total_rows;
}

Теперь, чтобы сделать это только для уведомлений по электронной почте WooCommerce, используйте вместо этого:

add_filter( 'woocommerce_get_order_item_totals', 'custom_order_total_line_html', 10, 3 );
function custom_order_total_line_html( $total_rows, $order, $tax_display ){
    // Only on emails
    if ( ! is_wc_endpoint_url() ) {
        // Loop through WooCommerce orders total rows
        foreach ( $total_rows as $key_row => $row_values ) {
            // Target only "fee" rows
            if ( strpos($key_row, 'fee_') !== false ) {
                $total_rows[$key_row]['value'] = str_replace('-', '', $row_values['value']);
            }
        }
    }
    return $total_rows;
}

Код находится в файле functions.php активной дочерней темы (или активной темы). Проверено и работает.

Другой ответ не сработал для меня.

add_filter( 'woocommerce_cart_totals_fee_html', 'remove_minus_sign_from_wc_fee', 10, 2 );
function remove_minus_sign_from_wc_fee( $fee_html, $fee ) {
    if ( 0 > $fee->amount ) {
        $fee_html = str_replace( '-', '', $fee_html );
    }
    return $fee_html;
}

Другие вопросы по теме