【问题标题】:Custom tracking code on Woocommerce thank you pageWoocommerce 感谢页面上的自定义跟踪代码
【发布时间】:2026-01-08 11:40:01
【问题描述】:

所以我在实现一个提取订单信息的自定义跟踪代码时遇到了问题。

到目前为止,这是我的 functions.php 文件中的内容,但在我购买时它实际上并没有显示任何信息。

add_action( 'woocommerce_thankyou', 'conversion_tracking' );
function conversion_tracking() {

$order = wc_get_order( $order_id );

$order_id = $order->get_id;
$order_parent_id = $order->get_parent_id;
$order_status = $order->get_status;
$order_currency = $order->get_currency;
$order_version = $order->get_version;
$order_payment_method = $order->get_payment_method;
$order_payment_method_title = $order->get_payment_method_title;
$order_payment_method = $order->get_payment_method;
$order_payment_method = $order->get_payment_method;


?>
  <script type = 'text/javascript'>
      window.sovIframes = window.sovIframes || [];
      window.sovIframes.push({
        trafficSourceNumber : '',
        trafficMediumNumber : '',       
        timestamp : '<?php echo $order_timestamp_created ?>',
        orderId : '<?php echo $order_id ?>',
        orderValue : '<?php echo $order_total ?>',
        orderCurrency : '<?php echo $order_currency ?>',
      });
<?php
}

当我尝试使用此代码提取订单数据时:

$order = wc_get_order( $order_id );
$order_data = $order->get_data();

$order_id = $order_data['id'];
$order_parent_id = $order_data['parent_id'];
$order_status = $order_data['status'];
$order_currency = $order_data['currency'];
$order_version = $order_data['version'];
$order_payment_method = $order_data['payment_method'];
$order_payment_method_title = $order_data['payment_method_title'];
$order_payment_method = $order_data['payment_method'];
$order_payment_method = $order_data['payment_method'];

我收到以下错误:

致命错误:未捕获的错误:调用成员函数 get_data() on 布尔输入 /home/feratino/www/REMOVED/wp-content/themes/REMOVED/functions.php:28 堆栈跟踪:0 /home/feratino/www/REMOVED/wp-includes/class-wp-hook.php(298): sovendus_conversion_tracking(109947)

1 /home/REMOVED/wp-includes/class-wp-hook.php(323): WP_Hook->apply_filters(NULL, Array)

2 /home/feratino/www/REMOVED/wp-includes/plugin.php(453): WP_Hook->do_action(Array)

3 /home/feratino/www/REMOVED/wp-content/plugins/woocommerce/templates/checkout/thankyou.php(74): do_action('woocommerce_tha...', 109947)

4 /home/feratino/www/REMOVED/wp-content/plugins/woocommerce/includes/wc-core-functions.php(204): include('/home/feratino/...')

5 /home/feratino/www/REMOVED/wp-content/plugins/woocommerce/includes/shortcodes/class-wc-shortcode-checkout.php(205): wc_get_template('checkout/thanky...', Array)

6 /home/feratino/www/REMOVED/wp-content/plugins/woocommerce/includes/shortcodes/class-wc-s 在 /home/feratino/www/REMOVED/wp-content/themes/REMOVED/functions.php 第 28 行

我的functions.php中的第28行:

$order_data = $order->get_data();

【问题讨论】:

    标签: php wordpress woocommerce


    【解决方案1】:

    请试试这个代码

    add_action( 'woocommerce_thankyou', 'conversion_tracking' );
    function conversion_tracking($order_id ) {
    
    // Lets grab the order
    $order = new WC_Order( $order_id );
    
    // Order ID
    $order_id = $order->get_order_number();
    
    // Order total
    $order_total = $order->get_total();
    
    // Order e-mail
    $order_email = $order->billing_email;
    ...
    ...
    

    【讨论】: