如何使用 woocommerce 购物车哈希

问题描述 投票:0回答:1

我有一个 WordPress 商店,我使用 WooCommerce 插件构建它。今天,我的网站遇到了问题,需要帮助解决。问题如下:

想象一个场景,登录用户将一些产品添加到购物车。两天后,他们返回我的网站,但不知不觉中退出了。然后,他们将另一种产品添加到购物车,但突然意识到自己尚未登录。然后,他们继续登录自己的帐户,但这样做后,新的购物车会覆盖以前的购物车。 我发现了我的问题,我编写了一个用于登录和注册的插件,我知道这个插件出现了这个问题,我对登录用户使用了 wp_set_current_user 函数,请查看这个函数并说出我的问题在哪里 我的代码是:

add_action('wp_ajax_SubmitPass', 'SubmitPass');
add_action('wp_ajax_nopriv_SubmitPass', 'SubmitPass');
function SubmitPass()
{
    global $wpdb;
    $UserID = intval($_POST['UserID']);
    $UserPass = htmlspecialchars($_POST['UserPass']);
    $User = $wpdb->get_results("SELECT `user_pass` FROM `wp_users` WHERE `ID` = $UserID");
    $UserPassHash = $User[0]->user_pass;
    if (wp_check_password($UserPass, $UserPassHash, $UserID)) {
        wp_set_current_user($UserID); // Set the current user detail
        wp_set_auth_cookie($UserID); // Set auth details in cookie
        if (get_user_meta($UserID, 'UserPhone', true) == '') {
            echo 'GoToGivePhone';
        } else {
            echo 'OK';
        }
    } else {
        echo 'incorrect';
    }
    die(0);
}
php wordpress woocommerce
1个回答
0
投票

问题在于您的代码对用户登录的处理。注销用户添加的购物车商品在登录时不会与其帐户关联。要解决此问题,请确保暂时存储购物车商品并在登录时与用户帐户关联。避免直接访问WordPress数据库表;使用内置功能进行用户管理。

© www.soinside.com 2019 - 2024. All rights reserved.