如何修改CF7钩子代码,排除邮箱与URL字段不转大写?
排除EMAIL和URL字段的大写转换修改方案
原代码会把所有用户输入转成大写,要排除EMAIL和URL字段,只需要在逻辑里增加字段类型判断即可,修改后的完整代码如下:
add_filter( 'wpcf7_mail_tag_replaced', function( $replaced, $submitted, $html, $mail_tag ) { // 获取当前字段的类型 $field_type = $mail_tag->get_type(); // 若字段是EMAIL或URL类型,直接返回原始内容不转换 if (in_array($field_type, ['email', 'url'])) { return $replaced; } // 其他字符串类型字段转为大写 if ( is_string( $submitted ) ) { $replaced = strtoupper( $submitted ); } return $replaced; }, 10, 4 );
关键修改说明
$mail_tag->get_type():调用Contact Form 7内置方法,获取当前字段的类型(比如text、email、url)in_array(...):检查当前字段是否属于要排除的类型,若是直接返回原始提交内容,跳过大写转换- 原有的字符串大写转换逻辑保留,只作用于非EMAIL、非URL类型的字段
内容的提问来源于stack exchange,提问作者enricotv
相关产品推荐
相关产品推荐

