WooCommerce 的用户登錄 是在哪個文件夾裏.

  • 該話題包含 7 個回覆,2 人蔘與,最後由lmn40227 更新於 7 年前
正在查看 8 個帖子:1-8 (共 8 個帖子)
  • 作者
    帖子
  • lmn40227
    參與者
    • 文章數量: 23
    @lmn40227
    樓主

    我目前的網站不是 woocomerce 製作的, 現在想通過 用户到 woocomerce 網站上 登錄, 來進行數據轉移.

     

    就是: 我會把老客户的郵箱都導到 woocomerce 的 wp-users 表裏, 然後 password 統一隨便設置, 一旦這些用户登錄, 只要被判斷是老客户, 並且密碼有 統一設置的那個, 那麼就會更新它的密碼.

    從而實現賬户轉移的功能.

     

    我在觀察 wordpress 的源代碼時, 遇到困難.

    function authenticate 此函數 根本不進行 密碼驗證.

     

    哪個大神給個提醒.

     

    詩語
    管理員
    • 文章數量: 5,925
    @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,925
    @feibisi

    其實我換個角度來説下啊,如果是直接這樣的話,也還會導致一個問題,就是用户不經意輸入錯誤了密碼那麼保存了,這次是登錄了那下次就登錄不了。

    一般如果是大型站點要做用户轉移的話,建議的方式是通過 SSO 單點登錄的方式來實現用户的數據同步和過度。

    比如拿我們自己的站點來舉例,feibisi.com 是舊站已經很多用户數據了,但我們需要將用户導入到 weixiaoduo.com 這個新網站來,

    那麼不應該是説進行數據庫的導入導出以及合併,而是要讓用户有選擇性的去從舊的 feibisi.com 登錄到 weixiaoduo.com ,這樣的話,就能夠實現讓用户過渡到新站和實現信任度的轉移。簡單講就是給舊站和新站都添加個 【一鍵登錄按鈕】 。

    WordPress 的 SSO 單點登錄方案也非常多,這個只是我們實際上操作過的方式,算是給個建議。

    lmn40227
    參與者
    • 文章數量: 23
    @lmn40227
    樓主

    用户不經意輸入錯誤了密碼那麼保存了,這次是登錄了那下次就登錄不了.

    我也考慮過 那個問題, 至少第二次他可以用忘記密碼..     其實我上面更大的問題在於 “ 第一次是登錄失敗,   第一次和第二次輸入不一樣, 第一次登錄 都進入不了, 才是我最不想見到的.     不過目前我還未知道 如何修改能使第一次登錄 成功, 而不是第二次.

     

    SSO 單點登錄的方式, 我會好好研究下.   主要問題是原網站由 netsuite 做出來的.  密碼的數據是提取不出來的.

     

    因為我的目標是換系統,  netsuite 改成 woocomerce.     網址最終都將還是 同一個.

     

    詩語
    管理員
    • 文章數量: 5,925
    @feibisi
    lmn40227
    參與者
    • 文章數量: 23
    @lmn40227
    樓主

    嗯 ..   我聯繫過 其中幾個.. 當我問他們 怎麼用户解決數據同步的時候.

    他們的方案 就是我上面要做的那樣..   所以我才走了這條路線.

    非常感管理員..

正在查看 8 個帖子:1-8 (共 8 個帖子)
  • 哎呀,回覆話題必需登錄。

話題信息

  • 當前位於:WooCommerce
  • 7 條回覆
  • 2 個參與人
  • 最後回覆:<a href="https://bbs.weixiaoduo.com/users/lmn40227/" title=" 查看 lmn40227 的個人資料" class="bbp-author-link"><span class="bbp-author-name">lmn40227</span></a>
  • 上次活動:<a href="https://bbs.weixiaoduo.com/topic/25339/#post-25406" title=" 回覆至:WooCommerce 的用户登錄 是在哪個文件夾裏.">7 年前</a>