结帐时检查用户注册

时间:2019-07-04 13:24:07

标签: php wordpress woocommerce checkout user-registration

我需要跟踪用户注册(例如:在“谢谢”页面上包含跟踪代码)。 据我所知,当用户在结帐页面上进行注册时,formatDate$customer对象内部的注册一无所知。另外,没有查询变量可以对此进行标记。

我如何找到这个?作为替代方案,我很高兴为此提供任何替代跟踪选项。

我尝试使用$order钩对此进行检查。 另外,我知道在这种情况下,用户在签出后登录。

1 个答案:

答案 0 :(得分:0)

我自己的解决方案不是最合适的方法,但是可以解决。
因为在结帐期间注册会自动登录用户,所以我可以将注册日期与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';
        }
    }
}