WooCommerce Thankyou跟踪代码安装位置

时间:2017-11-21 23:23:13

标签: php wordpress woocommerce tracking orders

我是Wordpress开发的新手,正在尝试在thankyou.php页面上安装流量垃圾跟踪代码。

到目前为止,我的尝试失败了,我认为归结为不能很好地理解PHP。

来自trafficjunky的两个跟踪代码是HTML或PHP

HTML:

<img id="1000143661_tester" src="https://ads.trafficjunky.net/tj_ads_pt?a=1000143661&member_id=1000734841&cb=[RANDOM_NUMBER]&cti=[TRANSACTION_UNIQ_ID]&ctv=[VALUE_OF_THE_TRANSACTION]&ctd=[TRANSACTION_DESCRIPTION]" width="1" height="1" border="0" />

PHP:

 <?php
    $randomNumber = time() . mt_rand(1000, 9999999);
    $currentPage = substr($_SERVER["REQUEST_URI"], 0, 255);
?>
<img id="1000143661_tester" src="https://ads.trafficjunky.net/tj_ads_pt?a=1000143661&member_id=1000734841&cb=<?=$randomNumber ?>&epu=<?=$currentPage ?>&cti=[TRANSACTION_UNIQ_ID]&ctv=[VALUE_OF_THE_TRANSACTION]&ctd=[TRANSACTION_DESCRIPTION]" width="1" height="1" border="0" />

我尝试在thankyou.php WooCommerce模板上的某些PHP代码下的订单处理后安装HTML版本:

**<?php else : ?>

            <p class="woocommerce-notice woocommerce-notice--success woocommerce-thankyou-order-received"><?php echo apply_filters( 'woocommerce_thankyou_order_received_text', __( 'Thank you. Your order has been received.', 'woocommerce' ), $order ); ?></p>

            <ul class="woocommerce-order-overview woocommerce-thankyou-order-details order_details">

                <li class="woocommerce-order-overview__order order">
                    <?php _e( 'Order number:', 'woocommerce' ); ?>
                    <strong><?php echo $order->get_order_number(); ?></strong>
                </li>

                <li class="woocommerce-order-overview__date date">
                    <?php _e( 'Date:', 'woocommerce' ); ?>
                    <strong><?php echo wc_format_datetime( $order->get_date_created() ); ?></strong>
                </li>

                <?php if ( is_user_logged_in() && $order->get_user_id() === get_current_user_id() && $order->get_billing_email() ) : ?>
                    <li class="woocommerce-order-overview__email email">
                        <?php _e( 'Email:', 'woocommerce' ); ?>
                        <strong><?php echo $order->get_billing_email(); ?></strong>
                    </li>
                <?php endif; ?>

                <li class="woocommerce-order-overview__total total">
                    <?php _e( 'Total:', 'woocommerce' ); ?>
                    <strong><?php echo $order->get_formatted_order_total(); ?></strong>
                </li>

                <?php if ( $order->get_payment_method_title() ) : ?>
                    <li class="woocommerce-order-overview__payment-method method">
                        <?php _e( 'Payment method:', 'woocommerce' ); ?>
                        <strong><?php echo wp_kses_post( $order->get_payment_method_title() ); ?></strong>
                    </li>
                <?php endif; ?>

            </ul>
            <img id="1000143661_tester" src="https://ads.trafficjunky.net/tj_ads_pt?a=1000143661&member_id=1000734841&cb=[RANDOM_NUMBER]&cti=[TRANSACTION_UNIQ_ID]&ctv=[VALUE_OF_THE_TRANSACTION]&ctd=[TRANSACTION_DESCRIPTION]" width="1" height="1" border="0" />
        <?php endif; ?>

        <?php do_action( 'woocommerce_thankyou_' . $order->get_payment_method(), $order->get_id() ); ?>
        <?php do_action( 'woocommerce_thankyou', $order->get_id() ); ?>

    <?php else : ?>

        <p class="woocommerce-notice woocommerce-notice--success woocommerce-thankyou-order-received"><?php echo apply_filters( 'woocommerce_thankyou_order_received_text', __( 'Thank you. Your order has been received.', 'woocommerce' ), null ); ?></p>

    <?php endif; ?>

</div>**

这导致订单错误,所以我试图找出如何安全地添加PHP版本的跟踪代码而不会抛出错误。

任何帮助都将不胜感激。

感谢您的回复,我已按照说明在functions.php中设置了该功能,但我仍无法触发跟踪代码。这是我目前的代码:

add_action( 'woocommerce_thankyou', 'tracking_code_thankyou', 10, 1 );

function tracking_code_thankyou($order_id){

$random_number = time() . mt_rand(1000, 9999999);
$current_page = substr($_SERVER["REQUEST_URI"], 0, 255);
?>
<em>Your tracking code just below (for testing)</em>
<img id="1000145711_cpa_testing" src="https://ads.trafficjunky.net/tj_ads_pt?a=1000145711&member_id=1000785411&cb=<?=$randomNumber ?>&epu=<?=$currentPage ?>&cti=[TRANSACTION_UNIQ_ID]&ctv=[VALUE_OF_THE_TRANSACTION]&ctd=[TRANSACTION_DESCRIPTION]" width="1" height="1" border="0" />
<?php

} }

2 个答案:

答案 0 :(得分:0)

您可以尝试在header.php(head标记的末尾之前)或footer.php(body标记的结尾之前)中添加php跟踪代码。如果您希望仅在该页面上运行,则需要获取页面的ID。

做这样的事情

if(is_page(yourpageidhere)):
//paste the tracking code here
endif;

答案 1 :(得分:0)

<强>已更新

而不是覆盖thankyou.php模板,因为您可以看到它的源代码,有这一行:

<?php do_action( 'woocommerce_thankyou', $order->get_id() ); ?>

这意味着您可以将此 woocommerce_thankyou 操作挂钩与自定义函数一起使用,以输出此模板行中的任何内容。首先让模板清理你的代码...

此外,我已更正了您在图片链接中的代码,因为它不正确。您应该在活动子主题或活动主题的function.php文件中使用以下代码:

add_action( 'woocommerce_thankyou', 'tracking_code_thankyou', 10, 1 );
function tracking_code_thankyou( $order_id ) {

    $random_number = time() . mt_rand(1000, 9999999);
    $current_page = substr($_SERVER["REQUEST_URI"], 0, 255);
    $url = "https://ads.trafficjunky.net/tj_ads_pt?a=1000145711&member_id=1000785411&cb=$randomNumber&epu=$currentPage&cti=[TRANSACTION_UNIQ_ID]&ctv=[VALUE_OF_THE_TRANSACTION]&ctd=[TRANSACTION_DESCRIPTION]";

    echo '<em>Your tracking code just below (for testing)</em>
    <img id="1000143661_tester" src="'.$url.'" width="1" height="1" border="0" />';
}

它会在订单收到页面末尾的客户详细信息之后输出您的代码...