【问题标题】:get woocommerce order id and amount for pixel获取 woocommerce 订单 ID 和像素数量
【发布时间】:2015-08-03 09:21:43
【问题描述】:

我一直在尝试在 wordpress 网站上为 woocommerce 中的结帐页面实现一个“像素”:

<iframe src="//www.euroads.dk/system/showtrackingpixels.php?cpid=XXXX&sid=1&orderid=%orderid%&currencysymbol=DKK&orderamount=%orderamount%" width=1 height=1 marginwidth=0 marginheight=0 ALLOWTRANSPARENCY="true" frameborder=0 scrolling=no hspace=0 vspace=0></iframe>

我希望 %orderid% 获取订单 ID,并希望 %orderamount% 获取订单总金额。

我试过用 %orderid% 替换这个

<?php echo $order->id ?>

还有 %orderamount%:

<?php echo WC()->cart->get_cart_total(); ?>

但它没有给出正确的结果。 :(

谁能帮帮我?

【问题讨论】:

  • 您真的想要结帐页面上的这个像素吗?还是订单完成(又名谢谢)页面?无论哪种方式,您当前都没有显示您如何定义 $order 变量,因此 $order-&gt;id 没有价值。
  • 是的,在非常有限的说明中,他们告诉我把它放在结帐页面中。我同意你的观点,把它放在“谢谢”页面上会更有意义。所以你认为我必须制作某种函数来定义 id 和数量以使其正常工作还是什么?

标签: php wordpress woocommerce


【解决方案1】:

它必须是感谢页面,因为您在结账时没有指定订单 ID。假设您可以将像素添加到 woocommerce_thankyou 钩子中,该钩子会自动传递给 $order_id 变量。

add_action( 'woocommerce_thankyou', 'so_31783715_pixel' );
function so_31783715_pixel( $order_id ){
    $order = wc_get_order( $order_id );
    $order_total = $order->get_total();
    printf( "<iframe src="//www.euroads.dk/system/showtrackingpixels.php?cpid=XXXX&sid=1&orderid=%s%&currencysymbol=DKK&orderamount=%s" width=1 height=1 marginwidth=0 marginheight=0 ALLOWTRANSPARENCY="true" frameborder=0 scrolling=no hspace=0 vspace=0></iframe>", $order_id, $order_total );

}

【讨论】:

  • 这几乎正是我想要的。因为我想localize一堆顺序变量,所以我做的主要更改是在wp_enqueue_scripts func中调用add_action,并将woocommerce_thankyou函数内联(add_action( 'woocommerce_thankyou', function() {...),然后将我的wp_localize_script 在里面。像魅力一样工作!
【解决方案2】:

将以下代码添加到主题的函数文件中。

只需更新像素的基本部分,使其适用于您选择的平台像素。

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////// ADD TO THE END OF YOUR THEME'S FUNCTIONS.PHP FILE ////////////////////////////////////////
if( ! function_exists( 'add_OfferForge_pixel_code' ) )
{
    function add_OfferForge_pixel_code()
    {
        if( is_order_received_page() )
        {
            $oid = "11184";// Offer id - o variable
            $eid = "183";// event id - e variable

            $getid = $_SERVER["REQUEST_URI"];
            $uu = explode('/',$getid);
            // if -- ["REQUEST_URI"]=> "/checkout/order-received/1689/?key=wc_order_55c9ee479b4c9"
            $transid = $uu[3];// order id
            $ppppp = $GLOBALS["wp_object_cache"]->cache["post_meta"][$transid]["_order_total"][0]; // price variable with shipping
            echo '<iframe src="https://offerforge.net/p.ashx?o='.$oid.'&e='.$eid.'&t='.$transid.'&p='.$ppppp.'&ect='.$ppppp.'" height="1" width="1" frameborder="0"></iframe>';
        }
    }
}
add_action( 'wp_footer', 'add_OfferForge_pixel_code', 99 );
/////////////////////////////////////////////////////////////////////////////

我希望这对你有用。

我使用订单总额作为 r 和 ect 变量的金额。

** 如果您要放置 OfferForge 像素,您只需要更新 'oid' 和 'eid' 值。

【讨论】:

  • 抱歉重复发帖。感谢您合并我的帖子 Martijn Pieters
猜你喜欢
  • 2017-07-08
  • 1970-01-01
  • 2019-09-08
  • 2017-04-04
  • 2014-03-05
  • 2021-07-19
  • 1970-01-01
  • 2020-08-26
  • 2017-10-27
相关资源
最近更新 更多