Скрыть IP-адрес клиента на страницах редактирования заказа администратора WooCommerce

Я изо всех сил пытался найти в Google, как скрыть IP-адрес клиента, отображаемый на страницах редактирования заказов WooCommerce, но никакой код мне пока не помог.

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

Этот вопрос WooCommerce — Изменить платный текст на странице сведений о заказе в панели администратора дал мне некоторое представление о том, как удалить текст «Оплачено при» (ps: я заменил его на «»).

Но кроме этого я понятия не имел, как скрыть IP-адрес клиента.

Я попробовал следующий код, но безуспешно:

add_filter( 'update_post_metadata', 'mp1401091554', 10, 3 );

function mp1401091554( $null, $id, $key ) {
    if ( '_customer_ip_address' === $key )
        return FALSE;

    return $null;
}
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
0
50
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы можете использовать CSS, чтобы скрыть IP-адрес клиента, например:

add_action( 'admin_head', 'admin_edit_order_css' );
function admin_edit_order_css() {
    global $pagenow, $typenow;

    if ( ( $pagenow === 'post.php' && $typenow === 'shop_order' && isset($_GET['post']) ) 
    || ( $pagenow === 'admin.php' && isset($_GET['page']) && $_GET['page'] === 'wc-orders'
    && isset($_GET['action']) && $_GET['action'] === 'edit' && isset($_GET['id']) ) ) : ?>
    <style> .woocommerce-Order-customerIP {display:none;} </style>
    <?php endif;
}

Но он скроет только сам IP-адрес, но не подстроку «IP-адрес клиента:».

Таким образом, вы можете использовать вместо этого Javascript, чтобы удалить IP и скрыть подстроку «IP-адрес клиента:», например:

add_action( 'admin_footer', 'admin_edit_order_script' );
function admin_edit_order_script() {
    global $pagenow, $typenow;

    if ( ( $pagenow === 'post.php' && $typenow === 'shop_order' && isset($_GET['post']) ) 
    || ( $pagenow === 'admin.php' && isset($_GET['page']) && $_GET['page'] === 'wc-orders'
    && isset($_GET['action']) && $_GET['action'] === 'edit' && isset($_GET['id']) ) ) : ?>
    <script>
    jQuery('.woocommerce-Order-customerIP').remove();
    const orderNumberMeta = jQuery('.woocommerce-order-data__meta.order_number'), 
    orderNumberMetaHTML = orderNumberMeta.html();
    orderNumberMeta.html(orderNumberMetaHTML.replace('Customer IP:', ''));
    </script>
    <?php endif;
}

Код находится в файле function.php вашей дочерней темы (или в плагине). Протестировано и работает как с включенным HPOS, так и без него.

Вы получите что-то вроде:

Спасибо ! Это работает как шарм. Есть только одна небольшая проблема: когда я удаляю IP-адрес клиента и текст «Оплачено», у меня остается оплата наличными/картой. Но у карты via есть лишняя буква "." после точки. Что немного раздражает. Должен ли я создать для этого другой вопрос?

Mohammed Malleck 01.09.2024 15:21

@MohammedMalleck Правило - один вопрос за раз, так что да, вам следует создать новый вопрос (предоставив свою собственную попытку кода), поскольку я не совсем понимаю, о чем вы говорите.

LoicTheAztec 01.09.2024 15:32

готово! (извините, я здесь новенький).

Mohammed Malleck 01.09.2024 15:34

Другие вопросы по теме