自定义文本“total”;在WooCommerce结帐页面


Customize the text "Total" in WooCommerce checkout page

我想将结帐页面中的"Total"文本更改为"Total inkl "。增值税"。我尝试过不同的事情,但都没有成功。

这是我的目标:

<?php _e( 'Total', 'woocommerce' ); ?>

这是代码片段。我已经搜索了所有的语言文件,但我找不到任何东西。我已经安装了Q翻译插件,但我不认为这是问题。

我可以对它进行硬编码,但这不是一个好的解决方案,因为我必须在所有文件中进行此编辑。

我该怎么做呢?

谢谢

选项1 (最佳选择)

覆盖woocommerce checkout/review-order.php 模板。

您需要首先(如果没有完成)复制 templates 子文件夹位于 woocommerce 插件文件夹到您的活动子主题(或主题)文件夹,并将其重命名为 woocommerce

一旦在你的活动主题去 woocommerce > checkout ,并打开/编辑 review-order.php 模板文件。

在这个模板的末尾有:

        <?php do_action( 'woocommerce_review_order_before_order_total' ); ?>
        <tr class="order-total">
            <th><?php _e( 'Total', 'woocommerce' ); ?></th>
            <td><?php wc_cart_totals_order_total_html(); ?></td>
        </tr>
        <?php do_action( 'woocommerce_review_order_after_order_total' ); ?>
    </tfoot>
</table>

所以你会改变:

<th><?php _e( 'Total', 'woocommerce' ); ?></th>

:

<th><?php _e( 'Total inkl. vat', 'woocommerce' ); ?></th>

现在你可以保存了,你完成了…

引用:

  • 模板结构+通过主题覆盖模板
  • Woocommerce模板checkout> review-order.php

选项2 (不理想,见下文)

您可以使用wordpress gettex() 本地函数来实现此目的,如下所示:

add_filter('gettext', 'wc_renaming_checkout_total', 20, 3);
function wc_renaming_checkout_total( $translated_text, $untranslated_text, $domain ) {
    if( !is_admin() && is_checkout ) {
        if( $untranslated_text == 'Total' )
            $translated_text = __( 'Total inkl. vat','theme_slug_domain' );
    }
    return $translated_text;
}

这段代码放在你的活动子主题(或主题)的function.php文件或任何插件文件中。

但是您将在价格表中得到2个自定义文本,因为有2个 "Total" 文本(一次在'Products'之后的第一行)和一次在末尾…