在 WooCommerce 管理员编辑订单页面中隐藏客户 IP 地址

问题描述 投票:0回答:1

我尽最大努力在谷歌上搜索如何隐藏 WooCommerce 订单编辑页面中显示的客户 IP 地址,但还没有代码对我有帮助。

order-page

我基本上只是想向商店经理展示付款方式(即:通过卡付款)。我想删除任何其他文字。

这个问题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;
}
javascript php wordpress woocommerce orders
1个回答
2
投票

您可以使用一些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;
}

代码位于子主题的functions.php 文件中(或插件中)。经过测试,无论启用或不启用 HPOS,均可正常工作。

你会得到类似的东西:

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.