Заменить текст заголовков на страницах единого заказа администратора только в WooCommerce - PullRequest
0 голосов
/ 03 января 2019

Я пытаюсь изменить текст Биллинг и Доставка на странице Сведения о заказе в моей панели администратора. ( Скриншот )

Я знаю, что могу добиться этого, отредактировав файл "class-wc-meta-box-order-data.php" в следующем каталоге, и я добился успеха, но знаю, что мои изменения исчезнут после обновления.

Расположение файла:
WP-содержание / плагины / WooCommerce / включает / администратор / мета-боксы / Класс-туалет-мета-коробчатого порядка 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;
}

Я также пытался поместить каталог файлов в мою дочернюю тему (после редактирования), но он не работал.

1 Ответ

0 голосов
/ 03 января 2019

Следующие элементы будут предназначены только для страниц с правами администратора «один» (и «новый»):

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 вашей активной дочерней темы (или активной темы).Проверено и работает.

...