在Woocommerce,当订单创建时,我希望在付款之前获得订单ID。我在下面找到了这个答案:
我需要传递的是跟踪脚本、事务ID (如脚本中所指定的),并且我应该能够在clickwork7仪表板中跟踪:
<script type="text/javascript" src="https://clickwork7secure.com/p.ashx?
o=45875&e=12995&f=js&t=TRANSACTION_ID"></script>但是在Paypal上购买之后,交易ID似乎是空的,所以我可能应该传递订单ID。
订单收到页面似乎是正确的地方,但对于取消或失败的订单,在哪里和如何嵌入此脚本?
任何帮助都是非常感谢的。
发布于 2018-08-09 16:45:20
更新:可以使用许多不同的钩子:
wp_headwp_footerwoocommerce_thankyou您可以尝试使用:
$order_key = get_post_meta( $order_id, '_order_key', true );$transaction_id = get_post_meta( $order_id, '_transaction_id', true );1)使用woocommerce_thankyou钩子:作为顺序Id的更简单的方式是钩子参数
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钩子:
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…
类似的答案:
https://stackoverflow.com/questions/51772061
复制相似问题