我在WordPress上使用可湿性粉剂的形式,我期待着添加一个自定义蜜罐作为一个额外的保护层,防止大量涌入的垃圾邮件。
为了实现这一点,在一个简单而有效的尝试,我已经创建了一个名称字段的形式是隐藏display: none;
-所以在理论上这应该意味着,如果这个字段得到填写,那么它很可能总是垃圾邮件.
我相信我有这个工作,但它来了我的注意,无论隐藏的名称字段真或假的形式不再提交。
我不确定这是否是由于WP表单插件的最近更新或我使用的功能的问题。
有人知道如何实现这一点或建议任何问题吗?
谢谢
function forms_custom_honeypot( $honeypot, $fields, $entry, $form_data ) {
$honeypot_class = 'fancy-name-field';
$honey_field = false;
foreach( $form_data['fields'] as $form_field ) {
if( false !== strpos( $form_field['css'], $honeypot_class ) ) {
$honey_field = absint( $form_field['id'] );
}
}
if( !empty( $entry['fields'][$honey_field] ) ) {
$honeypot = 'Custom honeypot';
}
return $honeypot;
}
add_filter( 'wpforms_process_honeypot', 'forms_custom_honeypot', 10, 4 );
感谢@billerickson提供forms_custom_honeypot。
2条答案
按热度按时间ghhkc1vu1#
只是在这里报告我已经使用比尔的脚本成功地在网站上很长一段时间,但它似乎不与新的网站,我正在与一个完整的网站编辑主题。我认为这是一个FSE的事情,而不是WP 6的事情,因为旧网站运行6+工作正常。
x8diyxa72#
只是想提供一个快速更新,我设法解决了自定义蜜罐代码的问题,现在与WPForms。
答案是自定义的蜜罐在WPForms上被设置为带有名字的名字,然后它就不工作了。然而,一旦改回简单的文本字段,它就工作得很好,日志记录也很好。
因此,如果您遵循上述工作,那么Bill的建议是始终使用“文本”字段,并避免误报给予它一个不是姓名或电子邮件的标签,因为有些用户会让浏览器预先填写这些内容。