#php #wordpress #woocommerce
#php #wordpress #woocommerce
Вопрос:
Я пытаюсь сделать простое обновление текста на странице оформления заказа.
Так, например, в настоящее время отображается общее количество:
$ 135,65 (включая $ 10,35 GST)
Но поскольку общий вес корзины превышает 25 кг, я хочу добавить дополнительную плату в размере 2,5 долларов США, и теперь я хочу, чтобы она отображалась следующим образом:
$ 135,65 (включает в себя 10,35 GST, обработку и упаковку (2,5 доллара США))
На самом деле я заставил код работать раньше, но после последнего обновления Woocommerce мой код, похоже, больше не работает.
Вот оно:
add_filter( 'gettext', function( $translation, $text, $domain ) {
global $handlingfee;
global $cartweight;
if ($cartweight >= 25 amp;amp; $cartweight <= 39)
$handlingfee = 2.50;
if ($cartweight >= 40 amp;amp; $cartweight <= 59)
$handlingfee = 5.00;
if ($cartweight >= 60 amp;amp; $cartweight <= 79)
$handlingfee = 7.50;
if ($cartweight >= 80 amp;amp; $cartweight <= 99)
$handlingfee = 10.00;
if ($cartweight >= 100 amp;amp; $cartweight <= 119)
$handlingfee = 12.50;
if ($cartweight >= 120 amp;amp; $cartweight <= 139)
$handlingfee = 15.00;
if ($cartweight >= 140 amp;amp; $cartweight <= 159)
$handlingfee = 17.50;
if ($cartweight >= 160 amp;amp; $cartweight <= 179)
$handlingfee = 20.00;
if ($cartweight >= 180 amp;amp; $cartweight <= 199)
$handlingfee = 22.50;
if ($cartweight >= 200 amp;amp; $cartweight <= 219)
$handlingfee = 25.00;
if ($cartweight >= 25) {
$processingfeetext = ' and <b>$' . $handlingfee . '</b> Hamp;P';
}
if ( $domain == 'woocommerce' ) {
if ( $text == '(includes %s)' ) { $translation = '(includes %s' . $processingfeetext . ')'; }
}
return $translation;
}, 10, 3 );
add_filter( 'woocommerce_calculated_total', 'change_calculated_total', 10, 2 );
add_filter( 'woocommerce_calculated_total', 'change_calculated_total', 10, 2 );
function change_calculated_total( $total, $cart ) {
global $handlingfee;
global $cartweight;
if ($handlingfee > 0){
return $total $handlingfee;
}
else
{
return $total;
}
}
Любая помощь будет высоко оценена.
Комментарии:
1. Что сразу бросается в глаза в вашем коде, так это двойное использование
add_filter( 'woocommerce_calculated_total', 'change_calculated_total', 10, 2 );
2. И для добавления платы
woocommerce_cart_calculate_fees
хук кажется более подходящим. Затем отдельно напротив текста (числа) общей суммы отображается только плата