Php 获取像素的订单id和金额
我一直在尝试在woocommerce的wordpress网站上为结帐页面实现一个“像素”:Php 获取像素的订单id和金额,php,wordpress,woocommerce,Php,Wordpress,Woocommerce,我一直在尝试在woocommerce的wordpress网站上为结帐页面实现一个“像素”: <iframe src="//www.euroads.dk/system/showtrackingpixels.php?cpid=XXXX&sid=1&orderid=%orderid%¤cysymbol=DKK&orderamount=%orderamount%" width=1 height=1 marginwidth=0 marginheight=0
<iframe src="//www.euroads.dk/system/showtrackingpixels.php?cpid=XXXX&sid=1&orderid=%orderid%¤cysymbol=DKK&orderamount=%orderamount%" width=1 height=1 marginwidth=0 marginheight=0 ALLOWTRANSPARENCY="true" frameborder=0 scrolling=no hspace=0 vspace=0></iframe>
<?php echo WC()->cart->get_cart_total(); ?>
我希望%orderid%获得订单id,%orderamount%获得订单总金额
我已尝试将%orderid%替换为此
<?php echo $order->id ?>
以及%orderamount%与此:
<iframe src="//www.euroads.dk/system/showtrackingpixels.php?cpid=XXXX&sid=1&orderid=%orderid%¤cysymbol=DKK&orderamount=%orderamount%" width=1 height=1 marginwidth=0 marginheight=0 ALLOWTRANSPARENCY="true" frameborder=0 scrolling=no hspace=0 vspace=0></iframe>
<?php echo WC()->cart->get_cart_total(); ?>
但是它没有给出正确的结果(
有人能帮我吗?必须是感谢页面,因为您在结账时没有指定订单ID。假设您可以将像素添加到
woocommerce\u Thankyu
挂钩,挂钩会自动传递$order\u 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%¤cysymbol=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 );
}
add_action('woocommerce_thankyou'、'so_31783715_pixel');
函数so_31783715_像素($order_id){
$order=wc\u get\u order($order\u id);
$order_total=$order->get_total();
printf(“,$order\u id,$order\u total”);
}
将以下代码添加到主题的函数文件中
只需更新像素的基本部分,使其与所选平台的像素配合即可
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////// 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 );
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////添加到主题的FUNCTIONS.PHP文件的末尾////////////////////////////////////////
如果(!function_存在('add_OfferForge_pixel_code'))
{
函数add\u OfferForge\u pixel\u code()
{
如果(订单收到了吗?页面()
{
$oid=“11184”//Offer id-o变量
$eid=“183”//事件id-e变量
$getid=$\u服务器[“请求\u URI”];
$uu=explode('/',$getid);
//如果--[“请求URI”]=>“/checkout/order received/1689/?key=wc\u order\u 55c9ee479b4c9”
$transid=$uu[3];//订单id
$ppppp=$GLOBALS[“wp\u object\u cache”]->cache[“post\u meta”][$transid][“\u order\u total”][0];//带发货的价格变量
回声';
}
}
}
添加操作('wp\u footer','add\u OfferForge\u pixel\u code',99);
/////////////////////////////////////////////////////////////////////////////
我希望这对你有用
我使用订单总额作为r和ect变量的金额
**如果您正在放置OfferForge像素,则只需更新“oid”和“eid”值。您真的希望此像素出现在签出页面上?还是订单已完成(又名谢谢)页面?无论哪种方式,您当前都没有显示如何定义
$order
变量,因此$order->id
没有任何价值。是的,在非常有限的说明中,他们告诉我将其放在签出页面。我同意您的看法,将其放在“谢谢”上更有意义页面。你认为我必须使用某种函数来定义id和数量,以使其正常工作吗?很抱歉重复发布。感谢合并我的帖子Martijn Pieterst这几乎正是我想要的。因为我想本地化
一组订单变量,我所做的主要更改是调用在wp\u enqueue\u scripts
func中添加\u action
,并将woocommerce\u thankyou
函数内联(add\u action('woocommerce\u thankyou',function(){…
),然后将我的wp\u localize\u脚本扔到其中。效果非常好!