在 WordPress 用户配置文件中隐藏 WooCommerce 计费和运输字段

Posted

技术标签:

【中文标题】在 WordPress 用户配置文件中隐藏 WooCommerce 计费和运输字段【英文标题】:Hide WooCommerce billing and shipping fields in WordPress user profile 【发布时间】:2018-09-04 17:04:52 【问题描述】:

我找不到一种简单的方法来隐藏一些在 WordPress 后端的用户配置文件中可见的 WooCommerce 计费和运输字段。

例如,我想在 WordPress 用户配置文件中隐藏 billing_address_2shipping_address_2。有没有使用代码 sn-p 的好方法?我尝试使用下面的代码将第六行隐藏在 css 中,但我也无法让它工作。

#fieldset-billing.form-table tr:nth-child(6) 
     display: none;

如何在 WordPress 用户个人资料中隐藏 WooCommerce 计费和运输字段?

【问题讨论】:

【参考方案1】:

用户个人资料屏幕中显示的帐单和运输字段通过钩子woocommerce_customer_meta_fields 过滤。

要删除运输字段,您可以编写:

add_filter( 'woocommerce_customer_meta_fields', 'xbs_remove_shipping_fields' );
function xbs_remove_shipping_fields( $show_fields ) 
    unset( $show_fields['shipping'] );
    return $show_fields;

要删除所有字段,您可以返回一个空的array

【讨论】:

谢谢!我尝试了 sn-p,它适用于“运输”或“计费”,但是当我尝试“计费状态”时它不起作用..有什么想法吗? show_fields 数组有 2 个键:billingshipping,每个都包含一个带有 titlefields 键的数组。如果只想隐藏billing_state,则必须取消设置['billing']['fields']['billing_state'] 键。【参考方案2】:

您可以将其添加到 functions.php 文件中,然后取消设置,这样它们就不会被注册。

add_filter( 'woocommerce_checkout_fields' , 'custom_override_checkout_fields' );

function custom_override_checkout_fields( $fields ) 
     unset($fields['order']['billing_address_2']);     
     unset($fields['order']['shipping_address_2']);

     return $fields;

从帐户页面中删除:

function custom_remove_checkout_fields($fields) 
    unset($fields['order']['billing_address_2']);     
    unset($fields['order']['shipping_address_2']);
    return $fields;


add_filter( 'woocommerce_default_address_fields', 'custom_remove_checkout_fields' );

如果它出现在另一个地方,你可以添加另一个钩子但调用

add_filter( 'woocommerce_billing_fields', 'new_function_name' );

其他可用的钩子你可以在文件class-wc-countries.php中看到

有关更多信息和其他选项,您可以访问:https://docs.woocommerce.com/document/tutorial-customising-checkout-fields-using-actions-and-filters/

【讨论】:

谢谢,但它们仍然在后端的 WordPress 用户个人资料页面上可见.. 我已经更新了原始答案以显示如何删除帐户页面。 @Sjors 你能标出哪一个是答案并提供帮助。【参考方案3】:

要从 WordPress 后端用户配置文件中隐藏帐单和送货地址2 字段,请尝试以下操作:

add_action('admin_head', 'custom_admin_user_styles');
function custom_admin_user_styles() 
    ?>
    <style>
        table#fieldset-billing tr:nth-child(5),
        table#fieldset-shipping tr:nth-child(6)
            display: none !important;
        
    </style>';
    <?php

代码进入您的活动子主题(或活动主题)的 function.php 文件中。经过测试和工作。

【讨论】:

如果第 5 个或第 6 个孩子不是这些字段之一会怎样?添加一个新的或删除另一个,第 5 个和第 6 个孩子将是不同的字段。 @JoshChristensen 如果需要,您可以检查自己并为每个人更改正确的......但这已经过测试并且有效。 感谢 Josh 和 Loic 的帮助。我知道隐藏行不是最可持续的解决方案,但我根本无法让删除功能适用于 WP 个人资料页面。也许另一个插件在那里引起了问题..【参考方案4】:
add_filter( 'woocommerce_customer_meta_fields', '__return_empty_array' );

将上面的代码行添加到主题的functions.php 文件中。完美运行。

【讨论】:

【参考方案5】:

只需使用 CSS 将其隐藏即可。 .class 或#ID

.class
    display: none!important

【讨论】:

如果你问的话,这是最简单的方法。

以上是关于在 WordPress 用户配置文件中隐藏 WooCommerce 计费和运输字段的主要内容,如果未能解决你的问题,请参考以下文章

如何在正常的WordPress网站中集成支付网关?

php 类Woo_Provinces #wordpress

php Woo_Cities类#wordpress

如何在 WordPress Woo-Commerce 插件上获取所有包含的产品

Woocommerce 集成在自己的 wordpress 主题中

如何使用 WordPress Woo-Commerce 插件根据 url 参数显示不同的产品?