删除 WooCommerce 结帐字段值
Posted
技术标签:
【中文标题】删除 WooCommerce 结帐字段值【英文标题】:Remove WooCommerce checkout fields values 【发布时间】:2017-09-04 23:48:39 【问题描述】:我正在尝试在我的 WooCommerce 结帐字段上应用 autocomplete="off"
,但它不起作用。
有没有办法为结帐表单做到这一点?
我查看了文档,但那里没有可用的内容。我也尝试将默认值设置为空,但它也不起作用。这当然是用户没有登录的时候。
更新:
我按照@smvax 的建议尝试了unset
,但效果不佳。
add_filter('woocommerce_checkout_fields', 'default_values_checkout_fields');
function default_values_checkout_fields($fields)
if (!is_user_logged_in())
unset($fields['billing_city']);
unset($fields['billing_first_name']);
unset($fields['billing_last_name']);
unset($fields['billing_company']);
unset($fields['billing_address_1']);
unset($fields['billing_address_2']);
unset($fields['billing_city']);
unset($fields['billing_postcode']);
unset($fields['billing_country']);
unset($fields['billing_state']);
unset($fields['billing_email']);
unset($fields['billing_phone']);
unset($fields['shipping_city']);
unset($fields['shipping_first_name']);
unset($fields['shipping_last_name']);
unset($fields['shipping_company']);
unset($fields['shipping_address_1']);
unset($fields['shipping_address_2']);
unset($fields['shipping_postcode']);
unset($fields['shipping_country']);
unset($fields['shipping_state']);
return $fields;
我也尝试了答案here,但效果不佳。
谢谢
【问题讨论】:
Nkatry ka na nito jeepers? :) ***.com/questions/36694355/… @smzvax 我刚试过unset
,整个表格都不见了。
如何添加 ['clear'] 如下所示:surpriseazwebservices.com/edit-woocommerce-checkout-fields
@jeepers_creepers,你在哪里添加AUTOCOMPLETE = "off"
属性?
@MayankRaj 在<form>
【参考方案1】:
您可以使用 Wordpress '__return_empty_string'
和 woocommerce_checkout_get_value
WooCommerce 过滤钩子来简单地获取空值:
add_filter('woocommerce_checkout_get_value','__return_empty_string', 1, 1);
这将在加载结帐页面时清空所有结帐值。
代码位于活动子主题(或主题)的 functions.php 文件中或任何插件文件中。
此代码已经过测试并且可以工作。
您应该在 Woocommerce 设置 > 系统状态 > 工具和缓存中重置所有现有会话(如果您的电子商务使用任何会话)。 同时清空您的浏览器缓存和存储的数据。
相关:Clear only some checkout fields values in Woocommerce
【讨论】:
感谢您的回答,但我尝试时它不起作用。我将它添加到我的子主题的 functions.php 文件中。我的结帐网址:dfp-dev.creativequoin.com/checkout/?v=4e45c2af0995 @jeepers_creepers 我已经在 3 个不同的 WooCommerce 网站上测试了这段代码,并且它适用于所有网站。因此,您的主题或第三方插件中肯定有一些自定义代码,这会产生冲突……我已经更改了我的钩子(代码)中的优先级。再试一次。我希望它能正常工作。你可以在我的原始测试服务器上测试它:cbleu.net/sites/tie/shop(购买一些东西,然后在你的第一个订单之后,将一些东西添加到购物车并去结帐......你将在结帐字段中看到没有数据)。 当我将它添加到我的自定义 Woocommerce 插件中时它起作用了。谢谢!【参考方案2】:您可以使用 woocommerce_checkout_fields 过滤器为表单字段设置 autocomplete="off"。
add_filter('woocommerce_checkout_fields', 'autocomplete_off_checkout_fields');
function autocomplete_off_checkout_fields($fields)
$fields['billing_first_name']['autocomplete'] = 'off';
return $fields;
这将适用于所有 woocommerce 结帐字段。
【讨论】:
请注意,Chrome 浏览器会有意忽略“off”值,但仍会根据用户添加到 Chrome 的内容(即付款数据或地址)应用自动完成功能。以上是关于删除 WooCommerce 结帐字段值的主要内容,如果未能解决你的问题,请参考以下文章