【问题标题】:Woocommerce - Turn Off Autocomplete in Checkout Fields via "autocomplete=new-password"Woocommerce - 通过“autocomplete=new-password”关闭结帐字段中的自动完成
【发布时间】:2022-12-15 17:00:30
【问题描述】:

我找到了几个这样的编码示例,但没有任何效果。修复起来似乎很简单。当我们猜测某些用户在结账时在他们的浏览器中自动完成时,我们的结账页面出现问题,我们得到重复或不同的地址 1 和 2 值。即使启用 google api 来帮助自动完成,也没有解决我们的问题。它纠正了一些但还不够。

这是我在互联网上找到的解决方案的一个版本,与我自己的融合在一起,但没有做任何事情......

/* Disable autofill address */

add_filter( 'woocommerce_form_field', 'change_autofill', 1, 1 );

function change_autofill( $field) {

$field = str_replace('autocomplete="billing_address_1"', 'autocomplete="new-password"', $field);
return $field; 

}

我希望能够选择哪些输入字段以将自动完成属性设置为“新密码”,因为我读过这会强制所有现代浏览器认为它是密码字段并且不会尝试填充它们。使用检查器时,结帐中的每个输入字段都已经“autocomplete=off”。这就是为什么我们以这种方式追求这个解决方案......

【问题讨论】:

  • 即使解决方案是在结帐的每个字段上设置 autocomplete="newpassword",也没关系。宁愿挑选和选择......
  • 如果有人有想法,我仍然宁愿只选择某些领域?

标签: wordpress woocommerce


【解决方案1】:

能够使用此代码使其完全正常工作(我在搜索错误的东西):

/* Disable browser autofill on all Woocommerce form fields */

add_filter( 'woocommerce_form_field', 'change_autofill', 1, 1 );

function change_autofill( $field) {

$field = str_replace('autocomplete="off"', 'autocomplete="new-password"', $field);
return $field; 

}

这是有效的,因为所有字段都设置了属性autocomplete=off,它可能不适用于所有人。使用检查器工具查看每个字段。无论自动完成设置为什么,都是您第一次开始 str_replace 搜索时想要的内容。

干杯!

【讨论】:

    【解决方案2】:

    只是关于批准的答案的评论,它应该是:

    $field = str_replace('autocomplete="new-password"', 'autocomplete="off"', $field);
    

    代替:

    $field = str_replace('autocomplete="off"', 'autocomplete="new-password"', $field);
    

    【讨论】:

      猜你喜欢
      • 2021-08-20
      • 2023-04-10
      • 1970-01-01
      • 2015-04-20
      • 2018-06-17
      • 1970-01-01
      • 1970-01-01
      • 2023-03-05
      相关资源
      最近更新 更多