在 Woocommerce 中嵌入带有交易 ID 的 clickwork7 跟踪代码
Embed clickwork7 tracking code with the transaction ID in Woocommerce
在 Woocommerce 中,我希望在创建订单时在付款之前获取订单 ID。我在下面找到了这个答案:
我需要在跟踪脚本中传递交易 ID(如脚本中指定的那样),我应该能够在 clickwork7 仪表板中进行跟踪:
<script type="text/javascript" src="https://clickwork7secure.com/p.ashx?
o=45875&e=12995&f=js&t=TRANSACTION_ID"></script>
但是例如在 Paypal 中购买后交易 ID 似乎是空的,所以我可能应该改为传递订单 ID。
订单接收页面似乎是正确的地方,但对于取消或失败的订单,在哪里以及如何嵌入此脚本?
感谢任何帮助。
更新: 可以为此使用许多不同的钩子:
wp_head
wp_footer
woocommerce_thankyou
您可以尝试使用:
- 订单号(很容易得到)
- 订购码:
$order_key = get_post_meta( $order_id, '_order_key', true );
- 交易编号:
$transaction_id = get_post_meta( $order_id, '_transaction_id', true );
1) 使用 woocommerce_thankyou
挂钩:更简单的方法 因为订单 ID 是一个挂钩参数:
add_action( 'woocommerce_thankyou', 'checkout_clickwork_js_script', 22, 1 );
function checkout_clickwork_js_script( $order_id ) {
if ( ! $order_id ) return; // Exit
$transaction_id = get_post_meta( $order_id, '_transaction_id', true );
$order_key = get_post_meta( $order_id, '_order_key', true );
if( ! empty($transaction_id) ){
$value = $transaction_id; // TRANSACTION ID
}
elseif( ! empty($order_key) ){
$value = $transaction_id; // ORDER KEY
}
else {
$value = $transaction_id; // ORDER ID
$url = "https://clickwork7secure.com/p.ashx?o=45875&e=12995&f=js&t=$value";
?><script type="text/javascript" src="<?php echo $url; ?>"></script> <?php
}
代码进入您的活动子主题(或活动主题)的 function.php 文件。它应该有效。
2) 使用 wp_head
钩子:
add_action( 'wp_head', 'checkout_clickwork_js_script', 998 );
function checkout_clickwork_js_script() {
// Only order-received page
if( is_wc_endpoint_url('order-received') ) :
global $wp;
$order_id = absint( $wp->query_vars['order-received'] );
if ( ! $order_id || empty($order_id) )
return; // Exit
$transaction_id = get_post_meta( $order_id, '_transaction_id', true );
$order_key = get_post_meta( $order_id, '_order_key', true );
if( ! empty($transaction_id) ){
$value = $transaction_id; // TRANSACTION ID
}
elseif( ! empty($order_key) ){
$value = $transaction_id; // ORDER KEY
}
else {
$value = $transaction_id; // ORDER ID
$url = "https://clickwork7secure.com/p.ashx?o=45875&e=12995&f=js&t=$value";
?><script type="text/javascript" src="<?php echo $url; ?>"></script> <?php
endif;
}
代码进入您的活动子主题(或活动主题)的 function.php 文件。它应该有效。
The condition if( is_wc_endpoint_url('order-received') ) :
can be extended to handle cancelled and failed orders custom endpoints too …
相似答案:
在 Woocommerce 中,我希望在创建订单时在付款之前获取订单 ID。我在下面找到了这个答案:
我需要在跟踪脚本中传递交易 ID(如脚本中指定的那样),我应该能够在 clickwork7 仪表板中进行跟踪:
<script type="text/javascript" src="https://clickwork7secure.com/p.ashx?
o=45875&e=12995&f=js&t=TRANSACTION_ID"></script>
但是例如在 Paypal 中购买后交易 ID 似乎是空的,所以我可能应该改为传递订单 ID。
订单接收页面似乎是正确的地方,但对于取消或失败的订单,在哪里以及如何嵌入此脚本?
感谢任何帮助。
更新: 可以为此使用许多不同的钩子:
wp_head
wp_footer
woocommerce_thankyou
您可以尝试使用:
- 订单号(很容易得到)
- 订购码:
$order_key = get_post_meta( $order_id, '_order_key', true );
- 交易编号:
$transaction_id = get_post_meta( $order_id, '_transaction_id', true );
1) 使用 woocommerce_thankyou
挂钩:更简单的方法 因为订单 ID 是一个挂钩参数:
add_action( 'woocommerce_thankyou', 'checkout_clickwork_js_script', 22, 1 );
function checkout_clickwork_js_script( $order_id ) {
if ( ! $order_id ) return; // Exit
$transaction_id = get_post_meta( $order_id, '_transaction_id', true );
$order_key = get_post_meta( $order_id, '_order_key', true );
if( ! empty($transaction_id) ){
$value = $transaction_id; // TRANSACTION ID
}
elseif( ! empty($order_key) ){
$value = $transaction_id; // ORDER KEY
}
else {
$value = $transaction_id; // ORDER ID
$url = "https://clickwork7secure.com/p.ashx?o=45875&e=12995&f=js&t=$value";
?><script type="text/javascript" src="<?php echo $url; ?>"></script> <?php
}
代码进入您的活动子主题(或活动主题)的 function.php 文件。它应该有效。
2) 使用 wp_head
钩子:
add_action( 'wp_head', 'checkout_clickwork_js_script', 998 );
function checkout_clickwork_js_script() {
// Only order-received page
if( is_wc_endpoint_url('order-received') ) :
global $wp;
$order_id = absint( $wp->query_vars['order-received'] );
if ( ! $order_id || empty($order_id) )
return; // Exit
$transaction_id = get_post_meta( $order_id, '_transaction_id', true );
$order_key = get_post_meta( $order_id, '_order_key', true );
if( ! empty($transaction_id) ){
$value = $transaction_id; // TRANSACTION ID
}
elseif( ! empty($order_key) ){
$value = $transaction_id; // ORDER KEY
}
else {
$value = $transaction_id; // ORDER ID
$url = "https://clickwork7secure.com/p.ashx?o=45875&e=12995&f=js&t=$value";
?><script type="text/javascript" src="<?php echo $url; ?>"></script> <?php
endif;
}
代码进入您的活动子主题(或活动主题)的 function.php 文件。它应该有效。
The condition
if( is_wc_endpoint_url('order-received') ) :
can be extended to handle cancelled and failed orders custom endpoints too …
相似答案: