2016-09-13 12 views
0

В WooCommerce У меня проблема на моей странице благодарности (как только клиент разместил свой заказ). Я попытался изменить его вручную, но проблема в том, что код создается в неизвестном файле, который я не могу найти.WooCommerce - Настроить текст «Всего» на странице благодарности, полученной после получения.

<tfoot> 
     <?php 
       foreach ($order->get_order_item_totals() as $key => $total) { 
        ?> 
        <tr> 
         <th scope="row"><?php echo $total['label']; ?></th> 
         <td><?php echo $total['value']; ?></td> 
        </tr> 
        <?php 
       } 
      ?> 
    </tfoot> 

Этот код дает мне всю информацию в моем заказ как купон на доставку и т.д.

enter image description here

На этой картине я хотел бы заменить текст в черной каймой прямоугольника (Здесь 'Gesamt:' означают "Total" по "Total inkl. vat"

Также я хочу удалить красный прямоугольник прямоугольника: "Inkl. 19% MwSt.".

Возможно ли это?
Как я могу это сделать?

Спасибо.

ответ

2

Здесь экстракт конца на woocommerce/order/order-details.php шаблоне, который загружается в спасибо страницы.

Чтобы изменить текст в 'Total' отображаемый foreach петли с методом get_order_item_totals() приложенного к $order объекта (которые генерируют массив key/values), вы должны добавить условие для каждого языка, используемого вашим веб-сайтом. Здесь, в моем коде, вы получили английский и немецкий.

В вашей активной темы перейти к woocommerce > order и открыть/редактировать order-details.php файл шаблона.

Заменить конец шаблона с этим:

<tfoot> 
     <?php 
      $order_item_totals = $order->get_order_item_totals(); 
      $count_lines = count($order_item_totals) - 1; 
      $count = 0; 
      foreach ($order_item_totals as $key => $total) { 
       $count++; 
       // The condition to replace "Total:" text in english and german 
       if($total['label'] == 'Total:' || $total['label'] == 'Gesamt:') 
        $total_label = __('Total inkl. vat:', 'woocommerce'); 
       else 
        $total_label = $total['label']; 
       // End of the condition 
       ?> 
       <tr> 
        <th scope="row"><?php echo $total_label; // <== == Replaced $total['label'] by $total_label ?></th> 
        <td><?php echo $total['value']; ?></td> 
       </tr> 
       <?php 
       // this should avoid displaying last line 
       if($count >= $count_lines) break; 
      } 
     ?> 
    </tfoot> 
</table> 

<?php do_action('woocommerce_order_details_after_order_table', $order); ?> 

<?php if ($show_customer_details) : ?> 
    <?php wc_get_template('order/order-details-customer.php', array('order' => $order)); ?> 
<?php endif; ?> 

Теперь вы можете сэкономить, вы сделали ...

Этот код проверен и работает.

Ссылки:

+0

Спасибо! Вы знаете способ удалить лишний описанный ват сейчас с этого сайта? Спасибо – Johnny97

+0

Я могу написать вам электронное письмо, но я отвечу на него здесь, потому что, если другим людям нужен этот ответ, то вы знаете? Я имею в виду красное прямоугольное поле из моей картинки. Сначала я добавил вкл. vat to total label, и теперь я хочу удалить красное поле из этого цикла, потому что я не хочу показывать лишний лишний – Johnny97

+0

@ Johnny97 Я просто очень понимаю ** полностью ** ваш вопрос сейчас. Поэтому я обновил ваш вопрос, чтобы сделать его более ясным и обновленным моим ответом (вы должны проверить его, как я этого не сделал). Прокомментируйте здесь, если это сработает. – LoicTheAztec

1

Эй, я думаю, что это будет работать для вас

Просто убедитесь, что inkl. 19%.... правильно написано.

foreach ($order->get_order_item_totals() as $key => $total) { 
    ?> 
    <tr> 
     <th scope="row"><?php echo ($total['label']=='inkl. 19% Mwst.'?'Vat Only':$total['label']); ?></th> 
     <td><?php echo $total['value']; ?></td> 
    </tr> 
    <?php 
} 
+0

Спасибо за вашу помощь тоже! – Johnny97