Я изо всех сил пытался найти в 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;
}
Вы можете использовать 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, так и без него.
Вы получите что-то вроде:
@MohammedMalleck Правило - один вопрос за раз, так что да, вам следует создать новый вопрос (предоставив свою собственную попытку кода), поскольку я не совсем понимаю, о чем вы говорите.
готово! (извините, я здесь новенький).
Спасибо ! Это работает как шарм. Есть только одна небольшая проблема: когда я удаляю IP-адрес клиента и текст «Оплачено», у меня остается оплата наличными/картой. Но у карты via есть лишняя буква "." после точки. Что немного раздражает. Должен ли я создать для этого другой вопрос?