WooCommerce 的用户登录 是在哪个文件夹里.

WooCommerce 的用户登录 是在哪个文件夹里.

正在查看 8 个帖子:1-8 (共 8 个帖子)
  • 作者
    帖子
  • lmn40227
    参与者
    • 文章数量: 23
    @lmn40227
    楼主

    我目前的网站不是 woocomerce 制作的, 现在想通过 用户到 woocomerce 网站上 登录, 来进行数据转移.

     

    就是: 我会把老客户的邮箱都导到 woocomerce 的 wp-users 表里, 然后 password 统一随便设置, 一旦这些用户登录, 只要被判断是老客户, 并且密码有 统一设置的那个, 那么就会更新它的密码.

    从而实现账户转移的功能.

     

    我在观察 wordpress 的源代码时, 遇到困难.

    function authenticate 此函数 根本不进行 密码验证.

     

    哪个大神给个提醒.

     

    诗语
    管理员
    • 文章数量: 5,908
    @feibisi

    路径是这个:/wp-content/plugins/woocommerce/templates/myaccount

    文件是这个:

    wp-users 是 WordPress 的用户表,用户表和 woocommerce 通用,你要想这么操作我觉得太麻烦了,还不如直接先全部导入用户,然后再通过 WordPress 发送邮件,强制修改密码来的简单的多,一般我们如果是要做大批量的用户转移的话就是这么操作的。

    lmn40227
    参与者
    • 文章数量: 23
    @lmn40227
    楼主

    我开始问的那个有点含糊, 所以我附图了这次, 其实我是想知道

    pluggable.php 里 运用的  调用 authenticate 的函数, 如何进去密码验证的, 但是  上面找到所有关于 function authenticate 的函数都没有进行密码判断, 我非常的不解.

     

    诗语,  我以前 另外一个网站也是通过你的这种方法弄的, 但是还是流失了很多客户, 所以这次 我想换种方式就是上面提到的方法.

     

    这次我反着走, 找到了 wordpress 专门用于判断密码的函数 ,  function wp_check_password($password, $hash, $user_id = ”)

    如果我有突破, 也会马上更新在这里,   谢谢你的帮助.

     

    lmn40227
    参与者
    • 文章数量: 23
    @lmn40227
    楼主

     

    最终效果就是 第一次登录 虽然错误, 但改变了数据库的密码, 但第二次用同样的密码 就能登录.

    麻烦的地方就是需要把数据库里的密码 统一改成 “anythinguwant” . 用 sql 的写一条语句的话也算是比较快了

     

    
    function wp_check_password($password, $hash, $user_id = 」) {
    global $wp_hasher;
    
    // If the hash is still md5…
    if ( strlen($hash) <= 32 & $hash != 「anythinguwant」) {
    $check = hash_equals( $hash, md5( $password ) );
    if ( $check && $user_id ) {
    // Rehash using new hash.
    wp_set_password($password, $user_id);
    $hash = wp_hash_password($password);
    }
    
    /**
    * Filters whether the plaintext password matches the encrypted password.
    *
    * @since 2.5.0
    *
    * @param bool $check Whether the passwords match.
    * @param string $password The plaintext password.
    * @param string $hash The hashed password.
    * @param string|int $user_id User ID. Can be empty.
    */
    return apply_filters( 『check_password』, $check, $password, $hash, $user_id );
    }else if(strlen($hash) <= 32 & $hash == 「anythinguwant」){
    
    if ( $user_id ) {
    // Rehash using new hash.
    wp_set_password($password, $user_id);
    $hash = wp_hash_password($password);
    }
    
    return apply_filters( 『check_password』, $check, $password, $hash, $user_id );
    
    }
    诗语
    管理员
    • 文章数量: 5,908
    @feibisi

    其实我换个角度来说下啊,如果是直接这样的话,也还会导致一个问题,就是用户不经意输入错误了密码那么保存了,这次是登录了那下次就登录不了。

    一般如果是大型站点要做用户转移的话,建议的方式是通过 SSO 单点登录的方式来实现用户的数据同步和过度。

    比如拿我们自己的站点来举例,feibisi.com 是旧站已经很多用户数据了,但我们需要将用户导入到 weixiaoduo.com 这个新网站来,

    那么不应该是说进行数据库的导入导出以及合并,而是要让用户有选择性的去从旧的 feibisi.com 登录到 weixiaoduo.com ,这样的话,就能够实现让用户过渡到新站和实现信任度的转移。简单讲就是给旧站和新站都添加个 【一键登录按钮】 。

    WordPress 的 SSO 单点登录方案也非常多,这个只是我们实际上操作过的方式,算是给个建议。

    lmn40227
    参与者
    • 文章数量: 23
    @lmn40227
    楼主

    用户不经意输入错误了密码那么保存了,这次是登录了那下次就登录不了.

    我也考虑过 那个问题, 至少第二次他可以用忘记密码..     其实我上面更大的问题在于 “ 第一次是登录失败,   第一次和第二次输入不一样, 第一次登录 都进入不了, 才是我最不想见到的.     不过目前我还未知道 如何修改能使第一次登录 成功, 而不是第二次.

     

    SSO 单点登录的方式, 我会好好研究下.   主要问题是原网站由 netsuite 做出来的.  密码的数据是提取不出来的.

     

    因为我的目标是换系统,  netsuite 改成 woocomerce.     网址最终都将还是 同一个.

     

    诗语
    管理员
    • 文章数量: 5,908
    @feibisi
    lmn40227
    参与者
    • 文章数量: 23
    @lmn40227
    楼主

    嗯 ..   我联系过 其中几个.. 当我问他们 怎么用户解决数据同步的时候.

    他们的方案 就是我上面要做的那样..   所以我才走了这条路线.

    非常感管理员..

正在查看 8 个帖子:1-8 (共 8 个帖子)
  • 哎呀,回复话题必需登录。

话题信息