我是完整的JS新手,所以如果有人可以帮助解决这个问题,那就太棒了。
我的网站上有多个联系表单,我需要在每个提交按钮上包含自定义JS事件跟踪代码。
如果是一个简单的字段,我只想将此代码添加到它:
onClick="ga('send', 'event', { eventCategory: 'Form', eventAction: 'Call', eventLabel: 'Send', eventValue: 100});"
但我不知道如何使用[submit" Send"]按钮。在CF7中使用on_sent_ok函数的教程很少,但我完全迷失了......
非常感谢任何帮助!
答案 0 :(得分:1)
如何避免所有这些事情,而只需替换
[submit "SEND MESSAGE"]
使用
<input type="submit" value="SEND MESSAGE" class="wpcf7-form-control wpcf7-submit" onClick="ga('send', 'event', 'form', 'submit', 'success');" />
答案 1 :(得分:0)
将此添加到您的主题functions.php
文件中(如果它不存在则创建它)。
/**
* Add the code that will run when on_sent_ok is triggered;
*/
function my_plugin_wpcf7_properties( $properties, $instance /* unused */ ){
$properties[ 'additional_settings' ] .= "\n" . "ga('send', 'event', { eventCategory: 'Form', eventAction: 'Call', eventLabel: 'Send', eventValue: 100});";
return $properties;
}
add_filter( 'wpcf7_contact_form_properties', 'my_plugin_wpcf7_properties' , 10, 2 );
如果您需要不同的JS代码,具体取决于表单ID,您可以使用第二个参数:
/**
* Add the code that will run when on_sent_ok is triggered;
*/
function my_plugin_wpcf7_properties( $properties, $instance ){
if ( 1 == $instance->id ) {
$properties[ 'additional_settings' ] .= "\n" . "console.log('Form ID:1');";
} else if ( 2 == $instance->id ) {
$properties[ 'additional_settings' ] .= "\n" . "console.log('Form ID:2');";
} else if ( 3 == $instance->id ) {
$properties[ 'additional_settings' ] .= "\n" . "console.log('Form ID:3');";
}
return $properties;
}
add_filter( 'wpcf7_contact_form_properties', 'my_plugin_wpcf7_properties' , 10, 2 );
摘自blog post我写的
答案 2 :(得分:0)
我有一个解决方案,但它不是最干净的解决方案,因为你必须修改插件代码。
在submit.php文件中,我创建了以下if语句
global $post;
if($post->ID == 19 || $post->ID == 135) {
return $html;
}
else {
return $secondhtml;
}
由于我有几种形式,我有不同的onclick事件,所以根据帖子ID我返回包含输入代码的不同变量