在WooCommerce结帐页面中自定义文本"总计"

Joh*_*y97 4 php wordpress checkout gettext woocommerce

我想将结帐页面中的"总计"文字更改为"Total inkl.vat".我尝试过不同的事情但没有成功......

这是我的目标:

<?php _e( 'Total', 'woocommerce' ); ?>
Run Code Online (Sandbox Code Playgroud)

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

我可以很难编码,但那不是一个好的解决方案,因为我要在我的所有文件中进行编辑.

我怎么能实现这个目标呢?

谢谢

Loi*_*tec 7

选项1 (最佳选择)

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

你需要先(如果不这样做),以复制templates位于子文件夹,woocommerce插件文件夹到您的活动子主题(或主题)folde,并将其重命名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>
Run Code Online (Sandbox Code Playgroud)

所以你会改变:

<th><?php _e( 'Total', 'woocommerce' ); ?></th>
Run Code Online (Sandbox Code Playgroud)

至:

<th><?php _e( 'Total inkl. vat', 'woocommerce' ); ?></th>
Run Code Online (Sandbox Code Playgroud)

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

参考文献:


选项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;
}
Run Code Online (Sandbox Code Playgroud)

此代码位于活动子主题(或主题)的function.php文件中,或者也可以放在任何插件文件中.

但是您将在价格表中获得2个自定义文本,因为有2个"Total"文本(在"产品"之后的第一行中一次)和最后一次...

此代码经过测试和运行.