首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Woocommerce中嵌入带有事务ID的clickwork7跟踪代码

在Woocommerce中嵌入带有事务ID的clickwork7跟踪代码
EN

Stack Overflow用户
提问于 2018-08-09 16:35:13
回答 1查看 452关注 0票数 0

在Woocommerce,当订单创建时,我希望在付款之前获得订单ID。我在下面找到了这个答案:

在付款处理前获取结帐页面中的订单ID

我需要传递的是跟踪脚本、事务ID (如脚本中所指定的),并且我应该能够在clickwork7仪表板中跟踪:

代码语言:javascript
复制
<script type="text/javascript" src="https://clickwork7secure.com/p.ashx?
o=45875&e=12995&f=js&t=TRANSACTION_ID"></script>

但是在Paypal上购买之后,交易ID似乎是空的,所以我可能应该传递订单ID。

订单收到页面似乎是正确的地方,但对于取消或失败的订单,在哪里和如何嵌入此脚本?

任何帮助都是非常感谢的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-09 16:45:20

更新:可以使用许多不同的钩子:

  • wp_head
  • wp_footer
  • woocommerce_thankyou

您可以尝试使用:

  • 订单id (很容易得到)
  • 顺序键:$order_key = get_post_meta( $order_id, '_order_key', true );
  • 事务id:$transaction_id = get_post_meta( $order_id, '_transaction_id', true );

1)使用woocommerce_thankyou钩子:作为顺序Id的更简单的方式是钩子参数

代码语言:javascript
复制
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钩子:

代码语言:javascript
复制
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文件中。应该管用的。

可以扩展条件if( is_wc_endpoint_url('order-received') ) :来处理取消和失败的订单自定义端点 to…

类似的答案:

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51772061

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档