2017-06-27 44 views
0

我一直在敲我的頭大約一週。任何幫助將不勝感激。更改woocommerce中的會員資格狀態

我有一個woocommerce商店,我需要能夠通過Php更新用戶的成員身份(取消,活躍等)等。

我知道我可以抓住他們目前的狀態用:

wc_memberships_get_user_membership($user_id, $membership_id); 

,並創造新的成員:

wc_memberships_create_user_membership($args); 

,但我還沒有找到一個辦法只有改變狀態。

謝謝!

+0

你想改變所有用戶的狀態?立即? – jjj

+0

不,我需要更改一個會員的一個用戶狀態 – GeneralCan

回答

0

好了,所以搜索周圍一個多月,並與Woocommerce的支持團隊來回後(他們沒有幫助:/),我想出了這個解決方案:

在數據庫中游弋我注意到所有成員資格都只是帖子,而且他們有一個ID和一個帖子作者。所以我想我可以寫一點SQL來使它工作。

使用WordPres的內置$wpdb I類是能夠只是直接在數據庫中更新字段:

首先你要包括在您的函數$ WPDB:

  global $wpdb; 

然後你把查詢在一起,下面是它看起來像普通的SQL

 UPDATE ie_posts 
     SET post_status ='wcm-active' 
     WHERE post_parent = 49 AND post_author = 49870 

而這裏的是什麼樣子使用類:

 $wpdb->update('ie_posts', 
      array('post_status' => $_status), 
      array('post_parent' => $_membership_id, 
        'post_author' => $_user_id) 
     ); 

我會建議嘗試使用數據庫的開發副本,這樣你就不會破壞任何東西。

deff不是最漂亮的做法,但它的作用就像一個魅力。如果有人有更好的方式來照顧它,請讓我知道。

0

我會嘗試這種方式,例如用「待定」狀態得到任何成員:

$user_id = get_current_user_id(); 

$args = array( 
    'status' => 'pending' 
); 

$pending_memberships = wc_memberships_get_user_memberships($user_id, $args); 

然後,用條件檢查,你應該能夠這樣掛起狀態更改爲另一個。

+0

好的,很酷。你怎麼去改變它呢?這就是我堅持的部分。 假設用戶有2個成員資格,我需要修改其中一個的狀態。 – GeneralCan

+0

我有同樣的問題,無法找到修改狀態的命令...任何更新? – Stephen

+1

@Stephen是的,看到我的答案。它很髒,但它工作 – GeneralCan