php - 检查在 Woocommerce 结帐期间注册的用户
问题描述
我需要在结帐期间跟踪用户注册(例如:在感谢页面上包含跟踪代码)。据我所知,当用户在结帐页面上注册时,没有关于$customer
or对象内部注册的任何线索。$order
此外,没有查询变量来表示这一点。
我怎样才能知道在 checkourt 过程中发生了注册?作为替代方案,我很乐意为此提供任何替代跟踪选项。
我尝试使用woocommerce_thankyou
钩子来检查这一点。此外,我知道在这种情况下用户在结帐后登录。
解决方案
我自己的解决方案不是最合适的方法,但有效。
因为在结账时注册会自动登录用户,所以我可以将注册日期与ThankYou页面生成时间进行比较。在这种情况下,如果用户在最后 30 秒内注册,则跟踪代码将放置在感谢页面上。
add_action( 'woocommerce_thankyou', 'add_tracking_code_to_thankyou', 10, 1 );
function add_tracking_code_to_thankyou( $order_id ) {
// Only for logged in users
if ( $order_id && is_user_logged_in() ) {
$udata = wp_get_current_user();
$registered = new \DateTime($udata->user_registered);
$current = new \DateTime();
// get seconds elapsed after user registration
$interval = $current->format('U') - $registered->format('U');
if ($interval <= 30) {
// echo 'tracking code';
}
}
}
推荐阅读
- javascript - 在 Angular 的两个组件之间传递数据
- node.js - VSCode:使用带有猫鼬承诺的代码运行器扩展
- python - 在医疗数据集上微调 Bert
- python - 按小于 Flask SQLalchemy 的字符串长度过滤?
- azure-active-directory - 如何将安全组添加到 Azure 应用服务?
- svelte - 解析获取的主题标签并创建“svelte-routing”链接
- c# - C# 忽略空检查?
- html - Flask WTForms HiddenInput 值未发送到应用程序
- python-3.x - 如何允许组使用 is_staff 属性访问管理页面?
- regex - 花式正则表达式不返回输入中的所有匹配项