如何修改Contact Form 7成功/错误响应输出

时间:2017-10-12 作者:Mat

我正在试图找到一种方法来覆盖或过滤联系人表单7响应框的输出,这些响应框在显示表单错误或成功消息时显示。

默认情况下,联系人表单7在表单成功发送时输出此HTML:

<div class="wpcf7-response-output wpcf7-display-none wpcf7-mail-sent-ok" style="display: block;" role="alert">
    Thank you for subscribing!
</div>
实际上,我想将响应的输出HTML更改为引导可解除警报,如下所示:

<div class="wpcf7-response-output wpcf7-display-none alert alert-success" role="alert">
    Thank you for subscribing!
</div>
我尝试过搜索联系人表单7文档,并查看了插件源代码,以找到我认为需要的过滤器,但我无法更改响应HTML输出。这是我尝试过的代码:

function filter_wpcf7_response_output( $output ){
    // Replace Success CSS Class
    $output = str_replace( \' wpcf7-mail-sent-ok\', \' alert alert-success\', $output );
    return $output; 
}
add_filter( \'wpcf7_form_response_output\', \'filter_wpcf7_response_output\', 10, 1 );
但它似乎根本没有改变输出。。。任何帮助都将不胜感激!

1 个回复
最合适的回答,由SO网友:Mat 整理而成

在深入了解了这一点之后,我意识到显示的响应是通过联系人表单7 AJAX生成的。

因此Contact Form 7 documentation on DOM Events, 通过以下JS代码,我可以按照我的意愿实现这一点:

/* Validation Events for changing response CSS classes */
document.addEventListener( \'wpcf7invalid\', function( event ) {
    $(\'.wpcf7-response-output\').addClass(\'alert alert-danger\');
}, false );
document.addEventListener( \'wpcf7spam\', function( event ) {
    $(\'.wpcf7-response-output\').addClass(\'alert alert-warning\');
}, false );
document.addEventListener( \'wpcf7mailfailed\', function( event ) {
    $(\'.wpcf7-response-output\').addClass(\'alert alert-warning\');
}, false );
document.addEventListener( \'wpcf7mailsent\', function( event ) {
    $(\'.wpcf7-response-output\').addClass(\'alert alert-success\');
}, false );

结束

相关推荐

在非文档挂接上调用Apply_Filters

我一直在努力学习如何编写插件,我认为最好的方法是查看其他插件。我在看这一行和第一行/** * Plugin Name: Media Library Categories * Plugin URI: http://wordpress.org/plugins/wp-media-library-categories/ * Description: Adds the ability to use categories in the media library. * Vers

如何修改Contact Form 7成功/错误响应输出 - 小码农CODE - 行之有效找到问题解决它

如何修改Contact Form 7成功/错误响应输出

时间:2017-10-12 作者:Mat

我正在试图找到一种方法来覆盖或过滤联系人表单7响应框的输出,这些响应框在显示表单错误或成功消息时显示。

默认情况下,联系人表单7在表单成功发送时输出此HTML:

<div class="wpcf7-response-output wpcf7-display-none wpcf7-mail-sent-ok" style="display: block;" role="alert">
    Thank you for subscribing!
</div>
实际上,我想将响应的输出HTML更改为引导可解除警报,如下所示:

<div class="wpcf7-response-output wpcf7-display-none alert alert-success" role="alert">
    Thank you for subscribing!
</div>
我尝试过搜索联系人表单7文档,并查看了插件源代码,以找到我认为需要的过滤器,但我无法更改响应HTML输出。这是我尝试过的代码:

function filter_wpcf7_response_output( $output ){
    // Replace Success CSS Class
    $output = str_replace( \' wpcf7-mail-sent-ok\', \' alert alert-success\', $output );
    return $output; 
}
add_filter( \'wpcf7_form_response_output\', \'filter_wpcf7_response_output\', 10, 1 );
但它似乎根本没有改变输出。。。任何帮助都将不胜感激!

1 个回复
最合适的回答,由SO网友:Mat 整理而成

在深入了解了这一点之后,我意识到显示的响应是通过联系人表单7 AJAX生成的。

因此Contact Form 7 documentation on DOM Events, 通过以下JS代码,我可以按照我的意愿实现这一点:

/* Validation Events for changing response CSS classes */
document.addEventListener( \'wpcf7invalid\', function( event ) {
    $(\'.wpcf7-response-output\').addClass(\'alert alert-danger\');
}, false );
document.addEventListener( \'wpcf7spam\', function( event ) {
    $(\'.wpcf7-response-output\').addClass(\'alert alert-warning\');
}, false );
document.addEventListener( \'wpcf7mailfailed\', function( event ) {
    $(\'.wpcf7-response-output\').addClass(\'alert alert-warning\');
}, false );
document.addEventListener( \'wpcf7mailsent\', function( event ) {
    $(\'.wpcf7-response-output\').addClass(\'alert alert-success\');
}, false );

相关推荐

apply_filters() function

我用过apply_filters() 从WordPress帖子中检索内容时,如:$content=$query_val->post_content; $content = apply_filters( \'the_content\', $content ); 当我使用apply_filters() 这个apostrophe( \' ) 在我的文本中显示了一些字符。在我移除后apply_filters() 它显示正确。所以请解释清楚!!它在做什么?我已引用此链接Referal_lin