Проверьте пользователя, зарегистрированного во время оформления заказа - PullRequest
0 голосов
/ 04 июля 2019

Мне нужно отслеживать регистрацию пользователя (например, включить код отслеживания на странице с благодарностью). Насколько мне известно, когда пользователь регистрируется на странице оформления заказа, нет никакой подсказки о регистрации внутри объекта $customer или $order. Также нет запроса var, чтобы пометить это.

Как я могу это узнать? В качестве альтернативы, я был бы рад любой альтернативной опции отслеживания для этого.

Я пытаюсь использовать хук woocommerce_thankyou, чтобы проверить это. Кроме того, я знаю, что пользователь входит в систему после проверки в этом случае.

1 Ответ

0 голосов
/ 05 июля 2019

Мое собственное решение не самый правильный путь, но работает.
Поскольку регистрация во время оформления заказа автоматически регистрирует пользователя, я могу сравнить дату регистрации со временем генерации страницы 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';
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...