仅在 WooCommerce 中替换管理单个订单页面上的标题文本

Replace heading texts on admin single Order pages only in WooCommerce

我正在尝试修改管理面板中“订单详情”页面中的账单送货 文本。 (Screenshot)

我知道,我可以通过编辑以下目录中的 "class-wc-meta-box-order-data.php" 文件来实现,我成功了,但我知道我的更改将在更新后消失。

文件位置:
wp-content/plugins/woocommerce/includes/admin/meta-boxes/class-wc-meta-box-order-data.php

账单文本位于 312 行,发货文本位于 428 行。

我想用发件人信息

替换帐单

运费将替换为收件人信息

我试过使用下面的代码 & 它有效,但我只想在管理面板的订单详细信息页面上替换这些词,但这段代码也在前端替换这些词 & 我只想在管理面板中更新这些词。

add_filter('gettext', 'translate_reply');
add_filter('ngettext', 'translate_reply');

function translate_reply($translated) {
$translated = str_ireplace('Shipping', 'Recipient Information', 
$translated);
$translated = str_ireplace('Billing', 'Sender Information', $translated);
return $translated;
}

我也试过将文件目录放在我的 child 主题中(编辑后),但是没有用。

以下将仅针对管理单个 "edit"(和 "new")订单页面:

add_filter(  'gettext',  'change_admin_single_order_heading3', 10, 3 );
add_filter(  'ngettext',  'change_admin_single_order_heading3', 10, 3 );
function change_admin_single_order_heading3( $translated, $text, $domain  ) {
    global $pagenow;

    if ( is_admin() && ( ( $pagenow === 'post.php' && isset($_GET['post']) && get_post_type($_GET['post']) === 'shop_order' )
    || ( $pagenow === 'post-new.php' && isset($_GET['post-type']) && $_GET['post-type'] === 'shop_order' ) ) ) {

        if( $text === 'Billing' && $domain === 'woocommerce' ){
            $translated = esc_html__( 'Sender Information', $domain );
        }

        if( $text === 'Shipping' && $domain === 'woocommerce' ){
            $translated = esc_html__( 'Recipient Information', $domain );
        }

        // Addition asked in your comment
        if( $text === 'Shipping:' && $domain === 'woocommerce' ){
            $translated = esc_html__( 'Some text', $domain );
        }
    }
    return $translated;
}

代码进入您的活动子主题(或活动主题)的 function.php 文件。已测试并有效。