我是PHP的新手,我试图创建某种邮件计数器,每次有人在此WordPress site上填写联系表格7表单时,它都会创建一个唯一的号码。然后,我想将此值推送到DataLayer,然后我将使用Google跟踪代码管理器将其提取。
我发现this个帖子描述了如何创建计数器。
我设法获得了Contact Form 7动态文本扩展,以用数字更新数据库。
问题1:不会为每个新提交的值递增。
在设法使此功能正常工作之后,我想将此值推送到DataLayer。
为此,我尝试在contact-form-7-dynamic-text-extension插件PHP文件的末尾添加以下代码。
//Define the key to store in the database
define( 'CF7_COUNTER', 'cf7-counter' );
//Create the shortcode which will set the value for the DTX field
function cf7dtx_counter(){
$val = get_option( CF7_COUNTER, 0) + 1; //Increment the current count
return $val;
}
add_shortcode('CF7_counter', 'cf7dtx_counter');
//Action performed when the mail is actually sent by CF7
function cf7dtx_increment_mail_counter(){
$val = get_option( CF7_COUNTER, 0) + 1; //Increment the current count
update_option(CF7_COUNTER, $val); //Update the settings with the new count
}
add_action('wpcf7mailsent', 'cf7dtx_increment_mail_counter');
function custom_script(){
?>
<script>
(function($){
window.dataLayer = window.dataLayer || [];
window.dataLayer.push({
'event': 'formid': $val
});
})(jQuery);
</script>
<?php
}
add_action('wpcf7mailsent', 'custom_script');
问题2:什么都没有发送到DataLayer。