gpt4 book ai didi

php - 以编程方式获取用户刚刚在 Ubercart 中完成的订单

转载 作者:可可西里 更新时间:2023-10-31 23:11:50 26 4
gpt4 key购买 nike

当用户被发送到“感谢页面”(购物车/结帐/完成)时,我需要获取有关订单的一些信息以将其发送到第 3 方跟踪 API。问题是在这一点上没有关于订单的信息,无论是在 session 中还是在我所知道的任何其他地方。作为一种解决方法,我尝试查询当前连接的用户的最后一个订单,但是当用户未注册时,这会失败,因为 Ubercart 会即时注册帐户并使用户未登录。

所以我的问题是,是否有办法从 page-cart.tpl.php 模板中获取订单对象(购物车/结帐/完成)?

到目前为止我的解决方案:

在 cart/checkout/review 处获取 $_SESSION['cart_order'] 变量,将其分配给 $_SESSION['faux_order'] 并在我的脚本中在 cart/checkout/complete 处使用 faux_order ...看到一只长颈鹿窒息而死。

最佳答案

警告!不要使用上面的答案。请参阅我的评论以获取解释。

而不是上面提交的答案(你永远不应该!使用)创建一个自定义的 Ubercart 条件操作 (CA) 并将其添加到你的 Ubercart CA 中的“触发器:客户完成结帐”部分工作流程,在 https://dev.betternow.org/admin/store/ca/overview 中找到

这里我定义了一个自定义CA

function my_module_ca_action() {
$order_arg = array(
'#entity' => 'uc_order',
'#title' => t('Order'),
);


$actions['my_module_status_update'] = array(
'#title' => t('Some Title'),
'#category' => t('Custom UC AC'),
'#callback' => 'my_module_some_function_name',
'#arguments' => array(
'order' => $order_arg,
),
);
return $actions;
}

现在我可以在我自己的模块中定义的回调函数中使用订单 ID:

function my_module_some_function_name(&$order, $settings) {
echo "This is the order id: " . $order->order_id;
}

我自己使用这种方法向用户显示“感谢”页面,其中包含指向他们刚刚购买的产品的链接。

关于php - 以编程方式获取用户刚刚在 Ubercart 中完成的订单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3088514/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com