在 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_2
和 shipping_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 个键:billing
和 shipping
,每个都包含一个带有 title
和 fields
键的数组。如果只想隐藏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 Woo-Commerce 插件上获取所有包含的产品