我想在我的Wordpress評論表單上放置一個自定義事件,並希望每次有人點擊提交按鈕時跟蹤一個事件。我遇到的問題是表單提交併創建了頁面請求,Google分析代碼沒有時間工作。使用jQuery延遲WordPress的評論形式發佈以允許分析發送跟蹤。
我需要延遲表單提交,以便跟蹤有時間工作。我查了類似的問題,並嘗試了各種解決方案,但似乎無法讓他們工作。任何幫助將不勝感激。
我的代碼如下,我試圖延遲表單失敗。
<form id="commentsForm" action="<?php echo get_option('siteurl'); ?>/wp-comments- post.php" method="post" id="commentform">
<!-- Delay form submit to allow GA code to send -->
<script type="text/javascript">
$(document).ready(function(){
$('#commentsForm').submit(function (e) {
var form = this;
e.preventDefault();
setTimeout(function() {
form.submit();
}, 1000); // in milliseconds
});
});
</script>
<?php if (is_user_logged_in()) : ?>
<p>Logged in as <a href="<?php echo get_option('siteurl'); ?>/wp-admin/profile.php"><? php echo $user_identity; ?></a>. <a href="<?php echo wp_logout_url(get_permalink()); ?>" title="Log out of this account">Log out »</a></p>
<?php else : ?>
<p class="textfield">
<input name="author" id="author" value="<?php echo esc_attr($comment_author); ?>" size="22" tabindex="1" type="text" <?php if ($req) echo "aria-required='true'"; ?>>
<label for="author"><small>Name <?php if ($req) echo "(required)"; ?></small></label> </p>
<p class="textfield"><input type="text" name="email" id="email" value="<?php echo esc_attr($comment_author_email); ?>" size="22" tabindex="2" <?php if ($req) echo "aria-required='true'"; ?>>
<label for="email"><small>Mail (will not be published) <?php if ($req) echo "(required)"; ?></small></label></p>
<p class="textfield"><input type="text" name="url" id="url" value="<?php echo esc_attr($comment_author_url); ?>" size="22" tabindex="3">
<label for="url"><small>Website</small></label></p>
<?php endif; ?>
<!--<p><small><strong>XHTML:</strong> You can use these tags: <code><?php echo allowed_tags(); ?></code></small></p>-->
<p class="text-area"><textarea name="comment" id="comment" cols="58" rows="10" tabindex="4"></textarea></p>
//Submit button
<p><input class="submitButton" onClick="_gaq.push(['_trackEvent','Comment','Submit', URL]);" name="submit" type="submit" id="submit" tabindex="5" value="" />
<?php comment_id_fields(); ?>
</p>
<?php do_action('comment_form', $post->ID); ?>
</form>
我認爲它可能無法正常工作形式是一個PHP的形式,但我不知道得到它的工作的最佳途徑。
感謝您的任何幫助或想法。
你的例子適合我。什麼不適合你? – Basti 2012-03-05 17:04:50
嗯,我可以讓表單提交,但不會觸發GA代碼(因爲它太快地加載wp-comments-post.php),或者我可以得到它,以便代碼提交GA事件但不提交表格。在上面的示例中,表單提交,但是一旦遺憾地點擊了提交按鈕,就意味着GA事件沒有時間來定製自定義事件。感謝您爲我查看它。 – Simon 2012-03-05 21:01:22